是否可以在sfLapply调用中引用迭代编号,如下所示 -
wrapper <- function(a) {
y.mat <- data.frame(get(foo[i,1]), get(foo[i,2]))
...
...
do other things....
}
results <- sfLapply(1:200000, wrapper)
其中i是迭代次数,因为sfLapply循环1:200000。
我遇到的问题是我有超过200,000个案例需要测试,每个案例都需要构建一个data.frame,将执行各种操作。
我有一台2 Ghz Intel Core 2 Duo处理器(macbook笔记本电脑),所以我开始调查降雪包以利用并行处理。这导致我sfLapply,所以我开始研究是否可以重写我的代码以使用lapply()。但是,我还没有遇到过在lappy()调用中引用迭代次数的示例。
也许我正走向错误的方向。如果有人有任何建议我会非常感激。
答案 0 :(得分:1)
您没有在代码中使用参数a来包装。 1:200000中的所有数字都将传递给包装器,因此它代表您的迭代(而不是i)。
不要忘记,这些不会按顺序出现(由sfLapply提供)。
据我所知,没有办法知道你进入的迭代次数,因为不同的进程不知道其他进程在做什么。