2012-01-05 67 views
0

我想要得到一个POSIXct对象的向量(它最终将作为动物园对象的索引),跨越N个单独的句点。即此代码适用于N = 2的情况:将多个时间序列连接在一起

from=as.POSIXct(c('2012-01-04 09:00:00','2012-01-04 11:00:00'), tz="UTC") 
to=as.POSIXct(c('2012-01-04 09:15:00','2012-01-04 11:10:00'), tz="UTC") 
index=c(seq(from[1],to[1],by=60), seq(from[2],to[2],by=60)) 
class(index) #"POSIXct" 

如何在任意数量的时间段内使该代码具有通用性?我试过mapply(),它很奇怪。我似乎最终得到了一个数字类型列表,而不是POSIXct对象,然后在我尝试将其转换为POSIXct的各种尝试中,我有时会收到有关需要原点的错误消息。要进一步混淆事项,如果两个时期的长度相同(例如下面的内容),那么mapply会返回一个矩阵,而不是一个列表。如果有的话,哪一个似乎更难进入POSIXct对象的单个向量。

也许这是一个关于转换返回类型的问题;但我也开始觉得可能我错过了一个更简单的方法?

这里是相同长度的两个周期的测试数据:

from=as.POSIXct(c('2012-01-04 09:00:00','2012-01-04 11:00:00'), tz="UTC") 
to=as.POSIXct(c('2012-01-04 09:15:00','2012-01-04 11:15:00'), tz="UTC") 

回答

2

尝试:

do.call("c", mapply(seq, from, to, by = 60, SIMPLIFY = FALSE)) 
+0

由于@kohske,即出色紧凑。 (事实证明,在解决方案时,我已经很接近了:我尝试过'SIMPLIFY = TRUE',愚蠢地没有注意到TRUE是默认值和我的问题的原因!) – 2012-01-06 00:04:58