【问题标题】:R: reference iteration number in call to sfLapply(1:N, function(x))R:调用 sfLapply(1:N, function(x)) 时的参考迭代次数
【发布时间】:2011-04-28 02:20:53
【问题描述】:

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

也许我走错了方向。如果有人有任何建议,我将不胜感激。

【问题讨论】:

标签: r lapply


【解决方案1】:

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

但不要忘记,这些不会按顺序显示(由 sfLapply 提供)。

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

【讨论】:

    猜你喜欢
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2017-10-30
    • 2019-08-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多