我有一个生成"随机"时间序列并返回一个zoo对象:
f = makeTrace()
{
...details...
trace = zoo(g, dt)
}
然后我用replicate调用这个生成函数来生成许多随机时间序列:
make2DHist <- function(N=1000, alignG = .5, log=TRUE )
{
v = replicate(10, makeTrace())
v
}
现在,如果我打印出d = make2DHist()的结果,我得到了
> class(d)
[1] "matrix"
如果我打印出d,我会看到一个值矩阵。然而,如果我运行时间序列生成器函数并将其存储在变量中,我确实得到了一个动物园&#39;班级成员。
> d = makeTrace()
> class(d)
[1] "zoo"
如何生成任意数量的时间序列并将它们存储在一起?我查看了复制帮助页面,但没有看到任何关于此的内容,并且关于复制功能的内容并不多。
第二,相关问题。我想制作这些时间序列的二维直方图(时间与价值)。最简单的方法似乎是将动物园对象转换为两列数据帧,然后将所有数据帧重新绑定,然后使用hist2d。但这似乎不够优雅。还有另一种方法可以做到这一点,最好是使用zoo对象而不是转换为数据帧吗?
感谢您的任何建议。
答案 0 :(得分:4)
默认情况下,simplify
的{{1}}参数设置为replicate
。这意味着该函数检查结果是否符合矩阵,如果是,则返回TRUE
而不是matrix
。
要覆盖此行为,请在list
功能中设置simplify = FALSE
。