1

潜在的に大きなデータセットを扱っており、それに関数を適用するのに苦労しています。

ステップ 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 を作成するにはどうすればよいですか?

4

0 に答える 0