R:调用sfLapply时的引用迭代次数(1:N,函数(x))

时间:2011-04-28 02:20:54

标签: r lapply

是否可以在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()调用中引用迭代次数的示例。

也许我正走向错误的方向。如果有人有任何建议我会非常感激。

1 个答案:

答案 0 :(得分:1)

您没有在代码中使用参数a来包装。 1:200000中的所有数字都将传递给包装器,因此它代表您的迭代(而不是i)。

不要忘记,这些不会按顺序出现(由sfLapply提供)。

据我所知,没有办法知道你进入的迭代次数,因为不同的进程不知道其他进程在做什么。