は、私は、このマトリックスにランダムに撮影した同じサイズのrowMeans
2の群間の差を取ることを望むスピードアップ行列rowMeans操作を
nc <- 5000
nr <- 1024
m <- matrix(rnorm(nc*nr), ncol=nc)
、次の行列を考えてみましょう。
n <- 1000 # group size
system.time(replicate(100, {
ind1 <- sample(seq.int(nc), n)
ind2 <- sample(seq.int(nc), n)
rowMeans(m[, ind1]) - rowMeans(m[, ind2])
}))
それは、残念ながら、私はRprofの出力を理解していなかった(ほとんどの時間をis.data.frame
に費やされたように見えた??)より効率的な何かのため
提案、非常に遅いのですか?
私は次のことを意図している:
Rcpp
:私はそれはそれは、この段階で役立つだろうはっきりしていないので、RのrowMeansは、非常に効率的であると考えている私のオンライン測定値から。私はボトルネックが本当に最初であるかを確信したいと思っています。私のデザイン全体が最適ではないかもしれません。大部分の時間が小さな行列のそれぞれに対してコピーを作るのに費やされるならば、Rcppはより良い性能を発揮しますか?R-develに更新すると、さらに効率的な新しい
.rowMeans
機能があるようです。誰もそれを試しましたか?
ありがとう。
あなたがサンプリング、サブセット化し、すべてのアルマジロの違いをすれば、私はあなたが少しを得る疑うだろう。 RcppArmadillo経由で試すのに十分速いはずですか? –
それはかなり簡単でしょうが、うまくいけば私は純粋なRで逃げることができます。また、Rcppで乱数を管理する経験はありません。 – baptiste
Rcppの砂糖は、Rが使用する同じストリームを提供します:-) –