Что если вы хотите применить функцию, отличную от format
, к списку объектов POSIXct?Например, скажем, я хочу взять вектор времен, усечь это время до часа и применить произвольную функцию к каждому из этих времен.
> 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
, кажется, принимают первый элемент вектора как свой собственный список.