0
我有一个foreach循环在我的代码中以减少运行时间。我面临的问题是,我没有得到输出中的所有输入记录。以下是代码片段。并行化(foreach)在R不工作
# my_df has 100 records
library(doMC)
library(foreach)
no_cores <- detectCores()
registerDoMC(no_cores)
# nrow(my_df)=100
output <- foreach(combo = 1:nrow(my_df),.combine=rbind) %dopar%
{
df <- my_df[combo,] #taking 1 row at a time
### do some operations ####
score <- sum(another_df$score1+another_df$score2)
if(score>score_cutoff){
df$score <- score
}else{
df$score <- 0}
df; #rbinding *df* to *output*
}
输出数据帧应该包含100条记录,但是我得到的记录(小于100每次)的随机数。我多次使用foreach,但这是第一次发生这种情况。
有人可以帮我解决这个问题吗? 在此先感谢。
我假设你在'my_df'进行计算?你能否详细说明你的业务是什么? – Val
@Val,我编辑了问题中的代码。我正在做的是计算_SCORE_并将该值添加到_df_ – santhoshverma
@santhoshverma:你在哪里声明'another_df'?在“foreach”声明之前? 'another_df'的一般格式是什么? 2列data.frame? – CPak