潜在的に大きなデータセットを扱っており、それに関数を適用するのに苦労しています。
ステップ 1: データを作成しましょう。
n<-3 #this number gets larger in application.
precision<-0.3 #This number gets smaller in application.
support<-matrix(seq(0,1,by=precision), ncol=1)
support_n<-as.matrix(combn(support, n))
foo<-function(x,y){
part_1<-mean(x) # note x is a vector
out<-part_1+y #note y is not a vector
out
}
ステップ 2: n が大きくなり、精度が高くなると、地獄が開くので、このマルチコアを作成するつもりです。したがって、if-then ループは少量を除いて使用できません。作業の大部分は適用によって実行する必要があるため、マルチコア パッケージの「mcapply」を使用する場合があります。オブジェクト support_n の列方向の要素の各組み合わせで foo 関数を使用したいと思います
ステップ 3: 正しい出力 (apply でこれを行うことはできませんでした)
out_final<-support_n #this will just be a placeholder for the right answers.
system.time(
for(j in 1:dim(support_n)[2]){ #
for(i in 1:n){
out_final[i,j]<-foo(support_n[-i,j],support_n[i,j])
}
}
)
私の質問: mcapply と並行して作業を分散できるように、apply を使用して out_final を作成するにはどうすればよいですか?