r
  • date
  • dataframe
  • 2013-04-30 116 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" 
    
    相關問題