【发布时间】:2013-01-07 13:12:16
【问题描述】:
我已经定义了一个自定义函数,如下所示:
my.fun = function() {
for (i in 1:1000) {
...
for (j in 1:20) {
...
}
}
return(output)
}
它返回一个输出矩阵output,由 1000 行和 20 列组成。
我需要做的是重复函数说 5 次并将五个 output 结果存储到一个全新的矩阵中,比如 final,但是 不使用另一个 for 循环 (这是为了使代码更清晰,也因为我想尝试并行化这些额外的 5 次重复)。
因此final 应该是一个包含 5000 行和 20 列的矩阵(这 5 次重复背后的基本原理是,在我使用的两个 for 循环中,除其他函数外,sample)。
我尝试使用final <- replicate(5, my.fun()),它可以正确计算五次复制,但是我必须“手动”将元素放入一个全新的 5000 x 20 矩阵中。有没有更优雅的方法呢? (也许使用sapply()?)。非常感谢
【问题讨论】: