3

時間文字列のベクトルを解析しようとしていますが、奇妙なエラーが発生しました。たとえば、次のコード セクションを実行すると、R は期待どおりの結果を返しました。

time_format="%m/%d/%Y %H:%M:%S"
t_1 = "03/13/2011 01:00:10"
as.POSIXct(t_1, format = time_format)

出力:

[1] "2011-03-13 01:00:10 EST"

しかし、時間を少しずらして午前2時

t_2 = "03/13/2011 02:00:10"
as.POSIXct(t_2, format = time_format)

出力は次のようになりました。

[1] NA

Windows 7 と XP の R 2.11.1 と 2.12.2 で再現できます。誰も同じ問題に遭遇しますか?

ありがとう、デレク

4

1 に答える 1

12

存在しない時間を解析することはできません。02:00:10は、今週の土曜日の夜/日曜日の朝に夏時間に切り替えて「春先」になっていたため、存在しませんでした。Rはこれを知っています:

R> t_1 = "03/13/2011 01:00:10"; as.POSIXct(t_1, format = time_format)
[1] "2011-03-13 01:00:10 CST"
R> t_2 = "03/13/2011 02:00:10"; as.POSIXct(t_2, format = time_format)
[1] "2011-03-13 01:00:10 CST"
R> t_3 = "03/13/2011 03:00:10"; as.POSIXct(t_3, format = time_format)
[1] "2011-03-13 03:00:10 CDT"
R> 

Linuxでは、私のタイムゾーンライブラリは対応しているようです。1時間を引くと02:00:10は01:00:10になります。

于 2011-03-14T19:16:08.673 に答える