R でのミリ秒の丸めに関する次の問題があるとします。時間が正しくなるようにするにはどうすればよいですか?
> options(digits.secs=3)
> as.POSIXlt("13:29:56.061", format='%H:%M:%OS', tz='UTC')
[1] "2012-06-07 13:29:56.060 UTC"
> as.POSIXlt("13:29:56.062", format='%H:%M:%OS', tz='UTC')
[1] "2012-06-07 13:29:56.061 UTC"
> as.POSIXlt("13:29:56.063", format='%H:%M:%OS', tz='UTC')
[1] "2012-06-07 13:29:56.063 UTC"
この URL は背景情報を提供しますが、私の問題を解決しないことに気付きました: R で strptime を呼び出すときのミリ秒のパズル。
また、この URL は問題に触れていますが、解決していません: R xts: .001 millisecond in index。
これらの場合、次のことがわかります。
> x <- as.POSIXlt("13:29:56.061", format='%H:%M:%OS', tz='UTC')
> print(as.numeric(x), digits=20)
[1] 1339075796.0610001087
URL は、これが単なる表示上の問題であることを示しているようにも見えますが"%OS3"
、オプション行を使用しないなどのステートメントを使用すると、正しい桁数が取得されないように見えることに気付きました。
私が使用しているバージョンは Windows で 32 ビット 2.15.0 ですが、これは R の他の状況でも存在するようです。
元のデータは CSV ファイル内のこれらの日時文字列であることに注意してください。文字列から正しいミリ秒時間に変換する方法を見つける必要があります。