2017-05-22 13 views
0

こんにちはdate_time列には、以下のようにdate_timeを混在させた「Factor」型があります。あなたはlubridateを使用することができますRのdatetimeフォーマットに混合日付時刻情報からR日付時刻形式を取得するには

date_time     R_date_time 
01-Apr-2017 12:00:00  2017-04-01 12:00:00 
02/04/2017 03:00:00  2017-04-02 03:00:00 
30/05/2017 06:15:00  2017-05-30 06:15:00 
2/4/2017 05:18:00  2017-04-02 05:18:00 
2017/12/31 20:30:00  2017-12-31 20:30:00 
+0

を使用することができます。いつでも(DATE_TIME、TZ =「UTC」) –

+0

あなたが使用して他のフォーマットを追加することができ – user5860640

+1

はい私は以前、この問題に直面していますaddFormats() –

答えて

0

をこれらinformatsを変更する方法:

> dmy_hms("01-Apr-2017 12:00:00") 
[1] "2017-04-01 12:00:00 UTC" 

> dmy_hms("02/04/2017 03:00:00") 
[1] "2017-04-02 03:00:00 UTC" 

> dmy_hms("30/05/2017 06:15:00") 
[1] "2017-05-30 06:15:00 UTC" 

> ymd_hms("2017/12/31 20:30:00 ") 
[1] "2017-12-31 20:30:00 UTC" 

> dmy_hms("2/4/2017 05:18:00")#ambiguous format you can use mdy_hms as well 
[1] "2017-04-02 05:18:00 UTC" 

OR:

> mdy_hms("2/4/2017 05:18:00") 
[1] "2017-02-04 05:18:00 UTC" 

>ymd_hms("2017/12/31 20:30:00") 
[1] "2017-12-31 20:30:00 UTC" 
0

anytimeパッケージは素晴らしい選択肢です。例えば:

date_time <- c(text = "01-Apr-2017 12:00:00", "02/04/2017 03:00:00", 
       "30/05/2017 06:15:00", "2/4/2017 05:18:00", "2017/12/31 20:30:00") 

あなたは使用してフォーマットの一部を追加する必要がありaddFormats()例:

library(anytime) 
anytime::addFormats(c("%d/%m/%Y %H:%M:%S")) 

anytime(date_time, tz = "UTC") 

[1] "2017-04-01 12:00:00 UTC" "2017-04-02 03:00:00 UTC" "2017-05-30 06:15:00 UTC" 
[4] NA      "2017-12-31 20:30:00 UTC" 

しかし、「2017年2月4日午前5時18分のようなものをを解析することはできませんanytime()のように思えます:00 "例えば、 https://github.com/eddelbuettel/anytime/issues/24。その場合、あなたはそれが簡単にいつでもパッケージなどで行うことができますlubridate:dmy_hms("2/4/2017 05:18:00")または単にstrptime("2/4/2017 05:18:00", format = "%d/%m/%Y %H:%M:%S", tz = "UTC")

+0

'anytime(R_date_time、tz =" UTC ")の結果'入力日付のようには見えません。例えば'01-Apr-2017 12:00:00'は' 2017-03-31 22:00:00 UTC'になります。私はそれがタイムゾーンのものだとは思うが、わからない。 –

+0

@MarijnStevering、いつでも(「01-Apr-2017 12:00:00」、asUTC = TRUE、tz =「UTC」)#「2017-04-01 12:00:00 UTC」、それは私のためにうまくいきます。 –

関連する問題