これは を使用しませんがouter()、必要な場所に移動できると思います。を使用しますplyr。
library("lubridate")
library("plyr")
rt <- ymd_hms(c("2011-11-03 19:24:12", "2011-10-28 20:48:21",
"2011-11-04 10:06:14", "2011-10-31 17:10:05", "2011-10-28 06:35:59"))
offsets = 0:10
names(offsets) <- offsets
dat <- data.frame(llply(offsets, function(offset){rt+hours(offset)}))
変数に名前をoffsets付けると、列名がより適切になりdata.frameます。
> str(dat)
'data.frame': 5 obs. of 11 variables:
$ X0 : POSIXct, format: "2011-11-03 19:24:12" "2011-10-28 20:48:21" ...
$ X1 : POSIXct, format: "2011-11-03 20:24:12" "2011-10-28 21:48:21" ...
$ X2 : POSIXct, format: "2011-11-03 21:24:12" "2011-10-28 22:48:21" ...
$ X3 : POSIXct, format: "2011-11-03 22:24:12" "2011-10-28 23:48:21" ...
$ X4 : POSIXct, format: "2011-11-03 23:24:12" "2011-10-29 00:48:21" ...
$ X5 : POSIXct, format: "2011-11-04 00:24:12" "2011-10-29 01:48:21" ...
$ X6 : POSIXct, format: "2011-11-04 01:24:12" "2011-10-29 02:48:21" ...
$ X7 : POSIXct, format: "2011-11-04 02:24:12" "2011-10-29 03:48:21" ...
$ X8 : POSIXct, format: "2011-11-04 03:24:12" "2011-10-29 04:48:21" ...
$ X9 : POSIXct, format: "2011-11-04 04:24:12" "2011-10-29 05:48:21" ...
$ X10: POSIXct, format: "2011-11-04 05:24:12" "2011-10-29 06:48:21" ...
アップデート:
ldply()vsについてのケンのコメントdata.frame(llply())は、これにアプローチする別の方法があることに気づきました。
dat <- ldply(rt, `+`, hours(0:10))
を与える
> str(dat)
'data.frame': 5 obs. of 11 variables:
$ V1 : POSIXct, format: "2011-11-03 12:24:12" "2011-10-28 13:48:21" ...
$ V2 : POSIXct, format: "2011-11-03 13:24:12" "2011-10-28 14:48:21" ...
$ V3 : POSIXct, format: "2011-11-03 14:24:12" "2011-10-28 15:48:21" ...
$ V4 : POSIXct, format: "2011-11-03 15:24:12" "2011-10-28 16:48:21" ...
$ V5 : POSIXct, format: "2011-11-03 16:24:12" "2011-10-28 17:48:21" ...
$ V6 : POSIXct, format: "2011-11-03 17:24:12" "2011-10-28 18:48:21" ...
$ V7 : POSIXct, format: "2011-11-03 18:24:12" "2011-10-28 19:48:21" ...
$ V8 : POSIXct, format: "2011-11-03 19:24:12" "2011-10-28 20:48:21" ...
$ V9 : POSIXct, format: "2011-11-03 20:24:12" "2011-10-28 21:48:21" ...
$ V10: POSIXct, format: "2011-11-03 21:24:12" "2011-10-28 22:48:21" ...
$ V11: POSIXct, format: "2011-11-03 22:24:12" "2011-10-28 23:48:21" ...
異なる列名 (X0-X10 ではなく V1-V11) に加えて、これらの日付は現地時間 (私の場合は PDT) に変換されていることに注意してください。
> dat$V1
[1] "2011-11-03 12:24:12 PDT" "2011-10-28 13:48:21 PDT"
[3] "2011-11-04 03:06:14 PDT" "2011-10-31 10:10:05 PDT"
[5] "2011-10-27 23:35:59 PDT"