-1
並行計算我新的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()
我的目標是做每一行重複計算,我的功能看起來像
func2<-function(i)
{
msgbody<-tolower(as.character(purchase$msg_body[i]))
purchase$category[i]<-category_fun(i,msgbody)
}
爲此我寫了一個foreach循環
foreach(i = 1:nrow(purchase)) %dopar% func2(i)
但是,問題是,「FUNC2」應該寫回到數據幀,但它沒有寫任何東西,所有的項目都是一樣的老
欣賞你的幫助。
你是否將'foreach'結果保存到任何東西?另外,您可能需要將一些變量導出到所有工作人員。嘗試先在一個小的虛擬數據集中運行你的代碼。 –
您的函數缺少正確的返回值。尤其是對於並行處理,您應該進行適當的功能編程,這一點非常重要將函數內部需要的每個對象作爲函數參數傳遞,並返回函數外部需要的每個對象。 – Roland