【问题标题】:Joining multiple time sequences together将多个时间序列连接在一起
【发布时间】:2012-01-05 12:29:05
【问题描述】:

我想得到一个 POSIXct 对象的向量(它最终将作为动物园对象的索引),跨越 N 个不同的时期。 IE。此代码适用于 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" )

【问题讨论】:

    标签: r date timestamp


    【解决方案1】:

    试试这个:

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

    【讨论】:

    • 感谢@kohske,它非常紧凑。 (事实证明,在寻找解决方案时我已经接近了:我试过SIMPLIFY = TRUE,愚蠢地没有注意到 TRUE 是默认设置,也是我问题的原因!)
    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2011-07-01
    • 1970-01-01
    相关资源
    最近更新 更多