私は数百万行と約40列の行列を持っています。Rのパフォーマンス:行列の行の要素を並べ替える最も速い方法は何ですか?
各行の要素を値が小さくなるように並べ替える必要があります。したがって、各行の最高値を持つ要素は、最初の列になければなりません。
これを行うには、apply
関数を使用できます。例えば:私は非常に大規模な行列のためにこれを行うとき
set.seed(1)
mm <- replicate(10, rnorm(20)) #random matrix with 20 rows and 10 columns
mm.sorted <- apply(mm,1,sort,decreasing=T)
はしかし、このアプローチは非常に長い時間がかかります。
行の要素のソートを高速化するさまざまな方法があるのだろうかと思います。
ここでは、並列化に関するガイダンスを見ることができます:https://cran.r-project.org/web/views/HighPerformanceComputing.html私はそれが 'lapply(split(mm、row(mm) )、)sort) '' lapply'をmclapplyのようないくつかの亜種に置き換えます。 – Frank
FYI - 'replicate(10、rnorm(20))]'は20行10列の行列です。 – rbm
@rbm:ありがとう!修正しました。 –