指定as.Date格式在R

时间:2018-05-24 22:16:41

标签: r

我有以下DF:

date <- c("2017-10-11","2018-04-02","2017-05-03")
df <- data.frame(date)

以下代码无法将其格式化为日期,而是返回NAs:

df$date <- as.Date(df$date,format='%Y/%m/%d')

以下代码成功将其格式化为日期:

df$date <- as.Date(df$date)

我已经在其他项目中指定了as.Date格式(在第一个as.Date代码中),它之前对我有用。关于as.Date返回NAs的类似问题有很多回复,但是我无法解释为什么我的第一个as.Date代码在这种情况下不起作用,但我的第二个代码确实如此。我不需要为我的目的指定格式,但我想理解为什么第一行代码不起作用。

1 个答案:

答案 0 :(得分:1)

format函数的as.Date参数的默认值为"%Y-%m-%d",它与date df列的格式相匹配。

因此,df$date <- as.Date(df$date)完美无缺。

  

R-Studio帮助将format参数描述为:

     

格式

     

字符串。如果未指定,则会尝试"%Y-%m-%d"   然后在第一个非NA元素上"%Y/%m/%d",如果是,则给出错误   既不起作用。否则,处理是通过strptime

但是,df$date <- as.Date(df$date,format='%Y/%m/%d')工作。原因是数据列中不存在作为/的一部分提到的分隔符format