r
  • date
  • dataframe
  • 2013-04-30 117 views 2 likes 
    2

    我想选择data.frame的子集,只包含有关当前日期的信息。错误charToDate(x)

    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 
    

    但它不起作用并返回上述错误。 解决这个错误的诀窍是什么?

    回答

    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" 
    
    相关问题