次のような日付のデータでいっぱいのスプレッドシートがあります。
Mon Jul 16 15:20:22 +0000 2012
正規表現を使用せずにこれらをR日付(できればPST)に変換する方法はありますか、それとも他の方法はありませんか?この変換を効率的に行うためのアイデアをいただければ幸いです。
確かに、strptime()
文字列から時間を解析するために使用するだけです。
R> strptime("Mon Jul 16 15:20:22 +0000 2012",
+ format="%a %b %d %H:%M:%S %z %Y")
[1] "2012-07-16 10:20:22 CDT"
R>
これは私のローカルタイムゾーン(CDT)を使用します。太平洋の場合は、次のように明示的に設定できます
R> strptime("Mon Jul 16 15:20:22 +0000 2012",
+ format="%a %b %d %H:%M:%S %z %Y", tz="America/Los_Angeles")
[1] "2012-07-16 08:20:22 PDT"
R>
これは、UTCに対して7時間のデルタで正しく見えます。
の例のセクションには、これを行う方法のほぼ逐語的な例があります?strptime
。
# ?strptime example:
## An RFC 822 header (Eastern Canada, during DST)
strptime("Tue, 23 Mar 2010 14:36:38 -0400", "%a, %d %b %Y %H:%M:%S %z")
# your data...
strptime("Mon Jul 16 15:20:22 +0000 2012", "%a %b %d %H:%M:%S %z %Y")
lubridate
これは、次のパッケージでも実行できます。tidyverse
library(lubridate)
parse_date_time("Mon Jul 16 15:20:22 +0000 2012", orders = "amdHMSzY")
それが私が好むものです。