2

我想选择仅包含有关当前日期的信息的 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

但它不起作用并返回上面的错误。解决此错误的技巧是什么?

4

1 回答 1

5

您收到该错误是因为已经DateNavDate格式,而Lastdate不是。比较DateNav应该today做的伎俩:

> 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"
于 2013-04-30T10:54:44.027 回答