xts オブジェクトに基づいて比率テーブルを作成しています。これは (残念ながら) 約 10^6 ループを必要とする大規模なプログラムの一部であるため、かなりのボトルネックが発生するため、高速化したいと考えています。
これは私が始めたものの例です:
library(quantmod)
test.xts <- xts(sample(seq(1,5, by=.5), 50, replace=T), as.Date(1:50))
system.time(for(i in 1:10000){
prop.table(table(test.xts))
})
>user system elapsed
19.86 0.00 18.58
私はすでに xts をマトリックスに変更しており、その結果、速度が大幅に向上しました。xts で何かが不足している場合に備えて、もともと xts であることだけを言及します。これは、マトリックスに変換することで既に見たゲインを超えて高速化します。
test.mat <- as.matrix(test.xts)
system.time(for(i in 1:10000){
prop.table(table(test.mat))
})
>user system elapsed
2.78 0.00 2.90
しかし、私はそれをできるだけ速くしたいと思っているので、他の人がさらに改善するための提案をしてくれることを願っています. 私が見落としている明らかなアプローチがあることを願っています。
追加情報として、これらのテーブルからの出力は、最終的に別の期間からの同様の出力とマージされるため、ディメンションの名前はそのままにしておく必要があります。(つまり、時間 1 の値「10」の割合を時間 2 の「10」の割合と一致させる必要があります)。
どんな助けでも大歓迎です。