csv
フォーマットのサンプルデータ。ファイルに保存broken_posix.csv
Date
3/10/2012 23:00
3/11/2012 0:00
3/11/2012 1:00
3/11/2012 2:00
3/11/2012 3:00
3/11/2012 4:00
3/11/2012 5:00
3/11/2012 6:00
3/11/2012 7:00
3/11/2012 8:00
3/11/2012 9:00
3/11/2012 10:00
3/11/2012 11:00
3/11/2012 12:00
3/11/2012 13:00
3/11/2012 14:00
3/11/2012 15:00
3/11/2012 16:00
3/11/2012 17:00
3/11/2012 18:00
3/11/2012 19:00
3/11/2012 20:00
3/11/2012 21:00
3/11/2012 22:00
3/11/2012 23:00
3/12/2012 0:00
3/12/2012 1:00
3/12/2012 2:00
3/12/2012 3:00
3/12/2012 4:00
3/12/2012 5:00
3/12/2012 6:00
3/12/2012 7:00
3/12/2012 8:00
3/12/2012 9:00
3/12/2012 10:00
3/12/2012 11:00
だから私はこのファイルを持っていますbroken_posix.csv
。私はファイルをうまく読むことができます
a_var <- read.csv("broken_posix.csv")
posix
それから私はそれを使用するように変換することができます
a_var_posixct = as.POSIXct(strptime( as.character( a_var$Date) , '%m/%d/%Y %H:%M'))
またはと
a_var_posixlt = strptime(as.character( a_var$Date) , '%m/%d/%Y %H:%M')
ただし、posixctを使用すると、毎年文字列に4つのNA値が含まれるため、問題が発生します。私が使用するとき、私はposixlt
1つのNA
値を取得しますMarch 11,2012 at 2 (daylight savings time)
走ると私が何を意味するのかわかるでしょう
which(is.na(a_var_posixct))
which(is.na(a_var_posixlt))
a_var_posixct[4]
a_var_posixlt[4]
NA
4番目の値は、明らかにposixltの日付値ですが、操作を適用するときは常に値です。
値を省略して、posix文字列の残りの部分を台無しにしてしまうようにしました。NAフラグをクリアしようとして、posix文字列をそれ自体として設定しようとしましたが、効果はありませんでした。時間と分のフォーマットを失うためだけに、文字値として設定しようとしました。
このような状況は、夏時間のせいで発生すると思います。日付に他の関数を実行しようとすると、NA値を変更できないため、NA値を回避する必要があるため、対処するのは非常にイライラします。データを日ごとに集計したり、日付オブジェクトを使用したりすることもできますが、それは適切な方法ではないようです。