重新格式化不正确的日期

时间:2018-10-22 07:22:31

标签: r date

当前,我正在研究RStudio的Retrosheet数据框,不喜欢日期格式,并且想要更改它。

devtools::install_github("rmscriven/retrosheet")

然后我导入了我想从中使用的数据框

GL17 <- getRetrosheet("gamelog", 2017)

将数据帧日期向量设为YYYYMMDD,就像没有正确格式设置一样,例如20170402,但我想将其更改为例如显示为2017-04-02,而我尝试过as.Date(GL17$Date, "Y%d%m%"),但返回为

Error in charToDate(x) : character string is not in a standard unambiguous format

这很合理。是否有比edit(GL17)更容易操纵整个矢量的方法,而这种方法要花很多时间,而且通常是行不通的。

1 个答案:

答案 0 :(得分:0)

“ ... YYYYMMDD 一样,没有正确的格式,例如20170402,但是我想更改它以显示为例如2017-04-02,我已经尝试过as.Date(GL17 $日期,“ Y%d%m%” )作为“

它是YYYYMMDD,但是您执行了“ Y%d%m”,这在两个级别上都是错误的-缺少的%以及m和d的顺序错误:

> as.Date("20100331","Y%d%m")
[1] NA
> as.Date("20100331","%Y%d%m")
[1] NA

使用正确的格式可以起作用:

> as.Date("20100331","%Y%m%d")
[1] "2010-03-31"

但是请注意,我的上述错误并没有重现您的错误,因此您必须做其他错误。也许您的约会日期实际上是很大的数字:

> as.Date(20100331,"%Y%m%d")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

这似乎总是会给您带来相同的错误。将数字转换为字符,然后重试:

> as.Date(as.character(20100331),"%Y%m%d")
[1] "2010-03-31"