charToDate(x)出错

时间:2013-04-30 10:30:22

标签: r date dataframe

我想选择一个data.frame的子集,其中只包含有关当前日期的信息。

today = Sys.Date()
LasttDate = paste("'",today,"'",sep = "")
> LastDate
[1] "'2013-04-30'"

通过以下包含日期的代码执行选择

Lastdbdata = dbdata[dbdata$DateNav == '2013-04-30',]

如果我们不想写日期的所有时间,但我们希望在运行代码时自动选择它,但我们可以编写代码

    Lastdbdata = dbdata[dbdata$DateNav == LastDate,]
    Errore in charToDate(x) : 
    character string is not in a standard unambiguous format

但它不起作用并返回上面的错误。 哪个是解决这个错误的技巧?

1 个答案:

答案 0 :(得分:5)

您收到该错误是因为DateNav已经采用Date格式,而Lastdate则不然。将DateNavtoday进行比较应该可以解决问题:

> Sys.Date()
[1] "2013-04-30"
> Sys.Date()==as.Date("2013-04-30")
[1] TRUE
> Sys.Date()==as.Date("'2013-04-30'")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

事实上,即使DateNav不是Date格式,您也可以/应该直接与today进行比较。

> Sys.Date()=="2013-04-30"
[1] TRUE

我不确定插入单引号的基本原理是什么。如果由于其他原因想要将日期转换为字符,则总是

> as(Sys.Date(),"character")
[1] "2013-04-30"