R replicate函数返回一个数字矩阵,而不是一个动物园列表'类型

时间:2014-11-13 21:44:01

标签: r dataframe time-series

我有一个生成"随机"时间序列并返回一个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对象而不是转换为数据帧吗?

感谢您的任何建议。

1 个答案:

答案 0 :(得分:4)

默认情况下,simplify的{​​{1}}参数设置为replicate。这意味着该函数检查结果是否符合矩阵,如果是,则返回TRUE而不是matrix

要覆盖此行为,请在list功能中设置simplify = FALSE