【发布时间】:2014-11-10 09:56:14
【问题描述】:
我有这个功能
function1 <- function(df1, df2, int1, int2, char1)
{
...
return(newDataFrame)
}
有 5 个输入:前 2 个是数据帧,然后我有两个整数和一个字符串。 该函数返回一个新的数据框。
到目前为止,我正在依次运行此功能 8 次:
newDataFrame1 <- function1(df1, df2, 1, 1, "someString")
newDataFrame2 <- function1(df1, df2, 2, 0, "someString")
newDataFrame3 <- function1(df1, df2, 3, 0, "someString")
newDataFrame4 <- function1(df1, df2, 4, 0, "someString")
newDataFrame5 <- function1(df1, df2, 5, 0, "someString")
newDataFrame6 <- function1(df1, df2, 6, 0, "someString")
newDataFrame7 <- function1(df1, df2, 7, 0, "someString")
newDataFrame8 <- function1(df1, df2, 8, 0, "someString")
最后我使用 rbind() 组合结果:
newDataFrameTot <- rbind(newDataFrame1, newDataFrame2, newDataFrame3, newDataFrame4, newDataFrame5, newDataFrame6, newDataFrame7, newDataFrame8)
我想使用 library(parallel) 并行运行它,但我无法弄清楚如何使它工作。我正在尝试:
cluster <- makeCluster(detectCores())
result <- clusterApply(cluster,1:8,function1)
newDataFrameTot <- do.call(rbind,result)
但这不起作用,除非我的函数 function1() 只有一个参数,我从 1 循环到 8。但这不是我的情况,因为我需要传递 5 个输入。 我怎样才能使这项工作并行?
【问题讨论】:
标签: r performance parameters parallel-processing dataframe