【发布时间】:2011-05-05 21:16:27
【问题描述】:
-为清楚起见进行了编辑-
我有兴趣找到多维自相关函数的零点。
我可以使用
从我的数据中生成自相关矩阵acm <- autocorr(x, 1:10)
但是,完整的矩阵可以是 20 x 5000 的数量级,这在计算上是昂贵的。
因此我想一次只计算 1 或 n 行。
这是我想采取的步骤
- 计算矩阵的第一行
- while(任何列都有所有正值) 计算矩阵的下一行并将其附加到已计算的行中
- 确定最后一列的行索引达到零
如果这是完整的矩阵:
acm <- cbind( c(10, 9, 8, 7, 6, 5, 4, 3, 1, -1),
c(10, 8, 6, 5, 3, 1, -1, 1, -1, 0 ))
我想要一个返回 10 的函数,因为第一个 col 是最后一个达到负值的。如果我先计算完整的矩阵,则以下内容就足够了:
max(which(apply(acm, 2, min)))
但我想避免计算超出需要的 acm,例如因为通常只需要 1 行或一小部分行进行计算。
【问题讨论】:
-
您的 acm 格式错误,您的功能解决方案无法正常工作:apply 没有给出合乎逻辑的结果。
-
抱歉,向量的长度不同,但我已经解决了这个问题。
标签: r while-loop