在R中,我可以成功地运行它,但是对于大的m,它需要一些时间。
m=10
u=c()
for(i in 1:m){
newdata <- subset(pgz, pgz$user_id==i)
if(dim(newdata)[1] > 0) {
u[i] <- i
} else{u[i] <-0}
}现在我想使用库(DoParallel),所以我输入以下内容
u=c()
foreach(i in 1:m){
%do%
newdata <- subset(pgz, pgz$user_id==i)
if(dim(newdata)[1] > 0) {
u[i] <- i
} else{u[i] <-0}
}但R不接受这一点。应该如何写这段代码才能运行呢?
发布于 2015-08-02 07:27:03
您似乎没有根据上面的代码指定要使用的核心数量,并且foreach循环的编写需要稍有不同。
library(doParallel)
m = 10
u=c()
registerDoParallel(cores=2)
foreach(i= 1:m) %dopar%{
newdata <- subset(pgz, pgz$user_id==i)
if(dim(newdata)[1] > 0) {
u[i] <- i
}
else{u[i] <-0}
}https://stackoverflow.com/questions/31766108
复制相似问题