将多个时间序列连接在一起

时间:2012-01-05 12:29:05

标签: r date timestamp

我想得到一个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对象的单个向量。

也许这是关于转换mapply的返回类型的问题;但我也开始觉得也许我错过了一种更容易的方式?

以下是两个长度相同的测试数据:

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" )

1 个答案:

答案 0 :(得分:2)

试试这个:

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