62589x62589 という大きな相関行列があります。問題なく実行した特定のしきい値を超えるマトリックスをバイナリ化しましたが、基本的な計算時間の大幅な違いについて少し混乱しています。
初めてこれを行ったとき.... 1 の数: 425,491 ... 0 の数: 3,916,957,430 これら 2 つの数値の合計 == 62589^2、行列が真に 2 値化されていることを意味します。これを Rdata オブジェクト (31Mb) として保存しました。行列の基本的な計算を実行するには、約 3.5 分かかります。
fooB <- foo %*% foo
2 回目は、より低いしきい値で..... 1 の数: 30,384,683 ... 0 の数: 3,886,998,238。これらの合計は 62589^2 となり、真に 2 値化されます。Rdata オブジェクトは 84Mb です。上記と同じ乗算ステップを実行すると、現在も 1 時間後にまだ計算されています。
最新のマトリックスで 1 の数が増えると、ファイル サイズと処理時間が大幅に増加しますか?
読んでくれてありがとう
編集:2番目の行列に対する同じ計算の最終時間は65分です
Edit2: is() を実行すると、次のようになります: Matrix Array Structure Vector