使用 'doParallel' 包在 R 中进行并行处理
Parallel processing in R using 'doParallel' package
我有一个从 2 迭代到指定值(即 columnCount)的循环。 i 的值至关重要,因为循环内发生的所有计算都取决于 i 的值。
循环片段:
> x1=runif(900000,9999,90999)
> x2=runif(900000,0,9)
> x3=runif(900000,5000,80000)
> y=rep(0:1,450000)
> data=data.frame(y,x1,x2,x3)
> dim(data)
[1] 900000 4
> columnCount = ncol(data)
> yVar = names(data[1])
for (i in 2:columnCount) {
xVar[i] = names(data[i])
result <- smbinning(df=data,y=yVar,x=xVar[i],p=0.05)
}
注意:Y 列始终不变,而 x 列在每一步中迭代 1(实际数据框有 250 多列)。我如何将其转换为以便我可以使用:
library(foreach)
library(doParallel)
foreach(icount(iters)) %dopar% {
如何使用并行包中的 mclapply。例如下面的内容:
require(smbinning) # caveat: I never used this package
data(iris)
names(iris) <- gsub("\.","",names(iris)) # didn't like dots
mclapply(2:NCOL(iris), function(varb)
smbinning(df = iris[,c(1,varb)],
y = names(iris[,c(1,varb)])[1],
x = names(iris[,c(1,varb)])[2],
p = 0.05))
我有一个从 2 迭代到指定值(即 columnCount)的循环。 i 的值至关重要,因为循环内发生的所有计算都取决于 i 的值。
循环片段:
> x1=runif(900000,9999,90999)
> x2=runif(900000,0,9)
> x3=runif(900000,5000,80000)
> y=rep(0:1,450000)
> data=data.frame(y,x1,x2,x3)
> dim(data)
[1] 900000 4
> columnCount = ncol(data)
> yVar = names(data[1])
for (i in 2:columnCount) {
xVar[i] = names(data[i])
result <- smbinning(df=data,y=yVar,x=xVar[i],p=0.05)
}
注意:Y 列始终不变,而 x 列在每一步中迭代 1(实际数据框有 250 多列)。我如何将其转换为以便我可以使用:
library(foreach)
library(doParallel)
foreach(icount(iters)) %dopar% {
如何使用并行包中的 mclapply。例如下面的内容:
require(smbinning) # caveat: I never used this package
data(iris)
names(iris) <- gsub("\.","",names(iris)) # didn't like dots
mclapply(2:NCOL(iris), function(varb)
smbinning(df = iris[,c(1,varb)],
y = names(iris[,c(1,varb)])[1],
x = names(iris[,c(1,varb)])[2],
p = 0.05))