我在Windows 7中使用doSMP作爲並行後端,R 2.12.2。我遇到了一個錯誤,並想了解可能的原因。以下是一些重現錯誤的示例代碼。R中並行R執行問題
require(foreach)
require(doSMP)
require(data.table)
wrk <- startWorkers(workerCount = 2)
registerDoSMP(wrk)
DF = data.table(x=c("b","b","b","a","a"),v=rnorm(5))
setkey(DF,x)
foreach(i=1:2) %dopar% {
DF[J("a"),]
}
的錯誤消息是
Error in { : task 1 failed - "could not find function "J""
我會問顯而易見的Q - 什麼是J()我運行你的代碼,並得到相同的錯誤在一個Linux框與R 2.13-0 -alpha,我無法在該系統的任何地方找到'J()'。 – 2011-04-01 13:03:33
這與Gavin的問題是一樣的,但是當你調用DF [J(「a」),]時,什麼是J? – 2011-04-01 13:11:38
啊,忽略這一點,我發現DF [J(「a」),]不在'foreach()'包裝中時工作,所以它必須是data.table特有的東西。將調查更多。 – 2011-04-01 13:16:25