我想选择一个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
但它不起作用并返回上面的错误。 哪个是解决这个错误的技巧?
答案 0 :(得分:5)
您收到该错误是因为DateNav
已经采用Date
格式,而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"