0

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

也许我正朝着错误的方向前进。如果有人有任何建议,我将不胜感激。

4

1 回答 1

1

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

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

据我所知,无法知道您进行了多少次迭代,因为不同的流程不知道其他流程在做什么。

于 2011-04-28T06:41:32.550 回答