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