无法将从Excel读取的日期列格式化为系统日期格式

时间:2019-07-07 11:38:58

标签: r

我在R中使用read.table方法从excel中读取了一个文件。我想将DATE列的格式从m / d / yyyy转换为yyyy-mm-dd格式。

DATE列的类是字符,因此使用转换为DATE as.Date(sp500 $ Date)。

数据:

  sam     565    656
  ram     7565   5686
  sam     789    5658

输出:

> head(sp500)
       Date Adj.Close
1  7/1/2019   2964.33
2 6/28/2019   2941.76
3 6/27/2019   2924.92
4 6/26/2019   2913.78
5 6/25/2019   2917.38
6 6/24/2019   2945.35

sp500$Date <- as.Date(sp500$Date, format='%m/%d/%y')

在输出中,我预计日期为“ 2019-07-01”,但实际输出为“ 2020-07-01”

如何在R中获得预期的DATE格式?

2 个答案:

答案 0 :(得分:0)

这是一个非常基本的问题,%y%Y之间是有区别的-使用%y时,它会读取前两个字符,然后停止,请运行以下命令查看区别:

X <- "07/07/2019"
as.Date(X, "%d/%m/%Y") # four-digit year
as.Date(X, "%d/%m/%y") # two-digit year

答案 1 :(得分:0)

尝试lubridate,它会检测格式

library(lubridate)
dmy(sp500$Date) #means day then month then year