1
(以下ワーキングソリューションを参照してください)multidplyr:私は機能を並列化するmultidplyrを使用したい
をクラスタ化する機能を割り当てる:
calculs.R
f <- function(x){
return(x+1)
}
main.R
library(dplyr)
library(multidplyr)
source("calculs.R")
d <- data.frame(a=1:1000,b=sample(1:2,1000),replace=T)
result <- d %>%
partition(b) %>%
do(f(.)) %>%
collect()
を私はその後、取得:
Initialising 3 core cluster.
Error in checkForRemoteErrors(lapply(cl, recvResult)) :
2 nodes produced errors; first error: could not find function "f"
In addition: Warning message:
group_indices_.grouped_df ignores extra arguments
どのようにすることができます各コアにソース関数を割り当てますか?ここで
==================
は完璧なスクリプトです:
は、更新する値を抽出し、データフレームに結果をオンにする必要があります
calcul.R
f <- function(x){
return(data.frame(x$a+1))
}
あなたはCLを初期化するように見え、クラスタを設定し、調達機能に
main.R
library(dplyr)
library(multidplyr)
source("calculs.R")
cl <- create_cluster(3)
set_default_cluster(cl)
cluster_copy(cl, f)
d <- data.frame(a=1:10,b=c(rep(1,5),rep(2,5)))
result <- d %>%
partition(b) %>%
do(f(.)) %>%
collect()
ような何かにあなたの機能を変更したい場合があります。この詳細な回答CPakのおかげで、次のもののためのより多くの情報: http://blog.aicry.com/multidplyr-dplyr-meets-parallel-processing / –