format
POSIXct オブジェクトのリスト以外の関数を適用したい場合はどうすればよいでしょうか? たとえば、時間のベクトルを取得し、それらの時間を 1 時間に切り捨て、それらの時間のそれぞれに任意の関数を適用するとします。
> obs.times=as.POSIXct(c('2010-01-02 12:37:45','2010-01-02 08:45:45','2010-01-09 14:45:53'))
> obs.truncated=trunc(obs.times, units="hours")
> obs.truncated
[1] "2010-01-02 12:00:00 EST" "2010-01-02 08:00:00 EST"
[3] "2010-01-09 14:00:00 EST"
さて、私は の長さobs.truncated
が 3 になると予想しますが、
> length(obs.truncated)
[1] 9
apply
したがって、このベクトルに対して関数を実行しようとしてもうまくいかないことがわかります。のクラスobs.truncated
は
> class(obs.truncated)
[1] "POSIXt" "POSIXlt"
ここで何が起こっているのか分かりますか? ベクトルの最初の要素を独自のリストとして取っているように見えますapply
。length