charToDate(x)出错

Lor*_*nti 2 r date dataframe

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

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

选择是通过包含日期的以下代码执行的,并且有效

Lastdbdata = dbdata[dbdata$DateNav == '2013-04-30',]
Run Code Online (Sandbox Code Playgroud)

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

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

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

Fra*_*ank 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
Run Code Online (Sandbox Code Playgroud)

事实上,即使DateNav不是Date格式,你也可以/应该直接比较today.

> Sys.Date()=="2013-04-30"
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

我不确定插入单引号的理由是什么.如果您想将日期转换为字符,原因是其他原因

> as(Sys.Date(),"character")
[1] "2013-04-30"
Run Code Online (Sandbox Code Playgroud)