-1
における並列計算の後、私はトピックのためにStackOverflowの上の様々なリンクを経ていR. で並列計算に新しいですし、最初のコードを書いた書き込みデータR
library(doParallel)
library(foreach)
detectCores()
## [1] 4
# Create cluster with desired number of cores
cl <- makeCluster(3)
# Register cluster
registerDoParallel(cl)
# Find out how many cores are being used
getDoParWorkers()
私の目的はにあります各行の繰り返し計算を行い、私の機能は、私は、foreachループに
foreach(i = 1:nrow(purchase)) %dopar% func2(i)
0123を書かれている。この目的のために
func2<-function(i)
{
msgbody<-tolower(as.character(purchase$msg_body[i]))
purchase$category[i]<-category_fun(i,msgbody)
}
ようになります
しかし、問題は「関数func2」が戻ってデータフレームに書き込むようになっているということですが、それが戻って何かを書いていない、すべてのエントリが古い
と同じですが、あなたが助けて感謝しています。
あなたは 'foreach'結果を何かに保存していますか?また、おそらくいくつかの変数をすべてのワーカーにエクスポートする必要があります。小さなダミーのデータセットでコードを実行してみてください。 –
関数に適切な戻り値がありません。特に並列処理の場合、適切な関数プログラミングを行うことが非常に重要です。関数の中で必要なすべてのオブジェクトを関数の引数として渡し、関数の外で必要なすべてのオブジェクトを返します。 – Roland