時間部分が 15:59 より大きい場合、IDateTime() は間違った日付を生成します (tz="America/Los_Angeles")
私のタイム ゾーンの 15:59 以降の時刻を持つすべてのレコードの変換。
問題の詳細:
http://stackoverflow.com/questions/34786887/why-does-idatetime-convert-to-the-wrong-date
FiveMinute.csv ファイルのデータ:
時間、高値、安値、始値、終値、ボリューム
2016/01/13 11:00,4.8100,4.7875,4.8050,4.7900,543
2016/01/13 11:05,4.7950,4.7825,4.7900,4.7925,781
2016/01/13 11:10,4.7925,4.7750,4.7925,4.7775,2787
2016/01/13 11:15,4.7850,4.7775,4.7800,4.7800,659
2016/01/13 17:00,4.7800,4.7700,4.7800,4.7700,371
2016/01/13 17:05,4.7750,4.7700,4.7700,4.7700,158
2016/01/13 17:10,4.7675,4.7550,4.7675,4.7550,288
R スクリプト:
ライブラリ(データ.テーブル)
csv1 = "5分.csv"
dt = fread(csv1)
dput(dt)
as.POSIXct(dt$時間)
as.POSIXct(dt$Time, "%Y/%m/%d %H:%M", tz="")
IDateTime(as.POSIXct(dt$Time))
IDateTime(as.POSIXct(dt$Time, tz=""))
IDateTime(as.POSIXct(dt$Time, tz="America/Los_Angeles"))
IDateTime(as.POSIXct(dt$Time, "%Y/%m/%d %H:%M", tz=""))
IDateTime(as.POSIXct(dt$Time, "%Y/%m/%d %H:%M", tz="America/Los_Angeles"))
dput(IDateTime(as.POSIXct(dt$Time, "%Y/%m/%d %H:%M", tz="America/Los_Angeles"))))
dput(IDateTime(as.POSIXct(dt[,Time], "%Y/%m/%d %H:%M", tz="America/Los_Angeles")))
システム: Win10x64 R 3.2.2 data.table 1.9.6
問題 #977 の 2 番目の投稿では、私が使用しているas.IDate.POSIXct
特殊化を示しています。 POSIXct で指定されたタイム ゾーンを使用します。 tz
引数を渡すと変換も行われますが、現在IDateTime
は追加の引数をas.IDate
渡さないことに注意してください。 実際には、 IDateTime
も再定義して、 ...
引数をas.IDate
およびas.ITime
に渡します。
IDateTime
の基準と目標が明確ではないので、これについての PR を試みていませんが、あなたの問題に対処すると思います。
e-mu-piさん、ありがとうございます。 あなたは、私が経験している IDateTime の問題の原因を特定しました。
@MichaelChiricoこれを
@arunsrinivasan確かに、タスクリストに入れます。
元の投稿は少し不明瞭です。
最小限の例:
as.POSIXct("2016/01/13 17:00", tz = "America/Los_Angeles")
# [1] "2016-01-13 17:00:00 PST"
IDateTime(as.POSIXct("2016/01/13 17:00", tz = "America/Los_Angeles"))
# idate itime
# 1: 2016-01-14 17:00:00