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