2017-09-07 8 views
1

"%Y-%m-%d%H:%M:%S"という形式のデータ型変数を含む大きなデータセット(数百万の観測値)があります。 "%m /%d /%Yと%H:%M:%S"と入力します。一貫性のないdatetime変数の書式設定

df <- data.frame(var1 = c(1:6), 
    var2 = c("A", "B", "C", "A", "B", "C"), 
    datetime = c("2013-07-01 00:00:02", "2016-07-01 00:00:01", 
      "9/2/2014 00:01:20", "9/1/2014 00:00:25", 
      "1/1/2015 0:07", "6/1/2015 0:01")) 

ユニークな、一貫した日付時刻形式に日時変数をフォーマットするための効率的な方法があります:データセットがどのように見えるかここで

はありますか?

+1

あいまいな日付(2014年9月2日など)がない場合は、anytimeパッケージの 'anytime'を使用できます。そのままで、あなたはあなたのデータにあるすべてのフォーマットで 'as.POSIXct'を使うことができます。 – Roland

答えて

2

POSIXCT溶液を使用するとparse_date_timeです。

EDIT:@Akarsh JainのPOSIXCTフォーマットを組み込んで、タイムアライメントを改善しました。

df$new_date <- parse_date_time(df$datetime, c("%Y-%m-%d %H:%M:%S", "%m/%d/%Y %H:%M:%S", "%m/%d/%Y %H:%M")) 
+0

ええと...私はこの' df $ datetime < - parse_date_time(df $ datetime 、%m /%d /%Y%H%%%%%%%%%%%%%%%% %H:%M "))' – Sagar

+0

同じ@D.senを投稿しました。偶然にも。あなたが気にしないことを願っています。 –

+0

^私の解決策が7分から7秒に適応していることを認識しているので、これはより良い答えです。 –

2

このようにlubridateパッケージを使用できます。必要に応じて

lubridate::parse_date_time(x = df$datetime, c("ymd HMS","mdy HMS")) 

[1] "2013-07-01 00:00:02 UTC" "2016-07-01 00:00:01 UTC" "2014-09-02 00:01:20 UTC" 
[4] "2014-09-01 00:00:25 UTC" NA      NA      
Warning message: 
2 failed to parse. 

lubridate::parse_date_time(x = df$datetime, c("ymd HMS","mdy HMS","mdy HM")) 

[1] "2013-07-01 00:00:02 UTC" "2016-07-01 00:00:01 UTC" "2014-09-02 00:01:20 UTC" 
[4] "2014-09-01 00:00:25 UTC" "2015-01-01 00:07:00 UTC" "2015-06-01 00:01:00 UTC" 

あなたは、私が言及した2つの例を比較することができる、自分の日時形式を指定することができます。

希望すると、これが役に立ちます。 :)

関連する問題