2012-05-04 6 views
1

XMLファイルを読み込んでいて、foreachとdoSNOWを使用してパフォーマンスを向上させたいのですが、plyrを使用するとエラーが発生します。私はそれが機能とパッケージを労働者に送る方法を見逃しているかもしれないと思う。plyrを使用して並列

library(foreach) 
library(doSNOW) 
cl <- makeCluster(4) 
registerDoSNOW(makeCluster(4, type = "SOCK")) 

> getDoParWorkers() 
[1] 4 
> getDoParName() 
[1] "doSNOW" 
> getDoParVersion() 
[1] "1.0.5" 

namelist = list() 
out1 <- foreach(i = 1:xmlSize(root[[3]])) %dopar% { 
    namelist[[i]] <- llply(xmlToList(root[[3]][[i]][[2]]), 
         data.frame, .parallel = TRUE) 
} 

out2 <- t(as.vector(as.data.frame(namelist))) 

エラーが発生します。

Error in { : task 1 failed - "could not find function "llply"" 
+2

を見てください。ルートとは何か、そしてそれは確かにライブラリ(XML)を必要とします。 –

答えて

4

?foreachそれが動作する一度あなたが自己完結型の例として、それを再投稿することができればそれはいいだろう.packages引数

+1

+1。また、@ Sam35、あなたの4番目の行は 'registerDoSNOW(cl)'でなければなりません。さらに、 'namelist'に割り当てる必要はありません(とにかく動作しません)。代わりに、 'llply'の結果を' out1'に直接渡してください。もしあなたが 'namelist [[i]] < - 'を取り出すなら、それはそうするでしょう。 – BenBarnes

+0

ありがとうございました。とても役に立ちました – Sam35

関連する問題