2

次のような日付のデータでいっぱいのスプレッドシートがあります。

   Mon Jul 16 15:20:22 +0000 2012

正規表現を使用せずにこれらをR日付(できればPST)に変換する方法はありますか、それとも他の方法はありませんか?この変換を効率的に行うためのアイデアをいただければ幸いです。

4

3 に答える 3

8

確かに、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時間のデルタで正しく見えます。

于 2012-08-28T21:00:36.763 に答える
6

の例のセクションには、これを行う方法のほぼ逐語的な例があります?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")
于 2012-08-28T21:00:21.523 に答える
0

lubridateこれは、次のパッケージでも実行できます。tidyverse

library(lubridate)
parse_date_time("Mon Jul 16 15:20:22 +0000 2012", orders = "amdHMSzY")

それが私が好むものです。

于 2018-06-09T00:31:03.427 に答える