【问题标题】:Converting Date from properly from excel to R将日期从excel正确转换为R
【发布时间】:2015-05-08 06:29:16
【问题描述】:

我在 csv 文件中有一些价格数据,我想将日期列设为日期

data<- read.csv("mypath//A.csv", 1)  
head(data)
class(data$Date)
data$Date<-as.Date(as.character(data$Date))
head(data)
class(reuters$Date)

结果如下:

data<- read.csv("path//A.csv", 1)  
> head(data)
       Date        O        H        L        C       V
1 10/1/2014 40.65270 40.70990 40.17359 40.18789 2481276
2 10/2/2014 40.13783 40.21649 39.53716 39.92331 1708052
3 10/3/2014 40.20934 40.76711 40.15929 40.69560 1577280
4 10/6/2014 40.80286 40.87437 40.35236 40.45247 1157370
5 10/7/2014 40.22364 40.28085 39.32979 39.32979 1515558
6 10/8/2014 39.37269 40.41672 39.18677 40.37381 2124682
> class(data$Date)
[1] "factor"
> data$Date<-as.Date(as.character(data$Date))
> head(data)
        Date        O        H        L        C       V
1 0010-01-20 40.65270 40.70990 40.17359 40.18789 2481276
2 0010-02-20 40.13783 40.21649 39.53716 39.92331 1708052
3 0010-03-20 40.20934 40.76711 40.15929 40.69560 1577280
4 0010-06-20 40.80286 40.87437 40.35236 40.45247 1157370
5 0010-07-20 40.22364 40.28085 39.32979 39.32979 1515558
6 0010-08-20 39.37269 40.41672 39.18677 40.37381 2124682
> class(data$Date)
[1] "Date"

您可以看到,在我执行 data$Date

谢谢。

【问题讨论】:

  • as.Date中指定format后尝试,即as.Date('10/1/2014', format='%m/%d/%Y')在你的文件中,as.Date(as.character(data$Date), format='%m/%d/%Y')

标签: r


【解决方案1】:

您好,有几种方法可以得到您想要的东西,我举几个例子:

data$Date <- as.POSIXct(strptime(paste(data$Date), format="%d/%m/%Y"))

或者使用包 lubridate 的一个非常好的替代方案

library(lubridate)
data$Date<-mdy(data$Date)

干杯

【讨论】:

  • 为什么不能只使用as.Dateformat 选项?
  • 我不是说不能。我个人更喜欢使用我发布的选项。但你的建议也是一个有效的建议。最后,一切都取决于稍后将如何处理数据。 Lubridate 非常灵活,即使在 R 知识有限的情况下,您也可以非常轻松地转换和更改格式。
  • 好的,我的评论基本上是由于您首先选择转换为strptime,然后是as.POSIXct。否则,它看起来不错
猜你喜欢
  • 2014-05-27
  • 2017-08-31
  • 1970-01-01
  • 1970-01-01
  • 2014-11-20
  • 1970-01-01
相关资源
最近更新 更多