2016-08-19 18 views
1

Rのデータフレームに文字列の日付列があります。次のコードで日付に変換しようとするとエラーになります。Rの文字を日付に変換

No  First Landing Page Submission Date 
    1 
    2 
    3   31-07-2016 16:57 
    4   31-07-2016 16:38 
    5    1/8/2016 4:58 
    6 
    7   31-07-2016 15:40 
    8 
    9   31-07-2016 14:49 
    10 
    11   31-07-2016 14:41 
    12   31-07-2016 13:51 

データは、csvファイルで上記の形式になります。

df$First.Landing.Page.Submission.Date <- as.Date(df$First.Landing.Page.Submission.Date) 

以下のエラーが発生します。

Error in charToDate(x) : 
character string is not in a standard unambiguous format 

rubridateパッケージの解析機能を使用すると、この形式の変換が行われます。

df$First.Landing.Page.Submission.Date <- parse_date_time(df$First.Landing.Page.Submission.Date, orders="dmy hms") 

    No  First.Landing.Page.Submission.Date 
    1    <NA> 
    2    <NA> 
    3   2020-07-31 16:16:57 
    4   2020-07-31 16:16:38 
    5   2020-08-01 16:04:58 
    6    <NA> 

あなたは3列目のオリジナルの日付を見ると31-07-2016 16時57分であり、私が解析されたときには、2020年7月31日16時16分57秒となりました。正しい方法を教えてください。

+0

短い列名を作成できますか? 'as.Date'に関しては、' format'、すなわち '%d-%m-%Y%H:%M'を指定するべきです。つまり、as.Date(df $ First.Landing.Page.Submission.Date、 – akrun

+0

@akrun形式を指定しても、日付は2020-07-31 16:16:57となります。 – Neil

答えて

3

あなたは、データが完全でない場合、このオプションは便利ですオプションtruncated=1

lubridate::dmy_hms(df1$FirstLanding, truncated = 1) 

でlubridateのdmy_hms機能を使用することができます。この特定の場合には、DMY-HMSフォーマットに必要とされる秒が欠落している。

+1

優れています。それは優れています。あなたの答えをありがとう。 – Neil

関連する問題