2

私はRから始めたばかりで、問題に遭遇しました。

hclust大量のデータを含むテーブルが必要です。

データは次の行列で構成されます。

> nrow(hell)
[1] 202397
> ncol(hell)
[1] 39840

行列は整数で構成されます (ほとんどが 0 ですが、もちろんそれ以上の値も含まれます)。

これで、48 コア、280 GB RAM の Linux マシンで 15 GB の txtfile を読み取ることができましたread.table()が、距離行列を計算しようとすると、次のエラーで失敗します。

d <- dist(as.matrix(hell))
Error in unlist(x,recursive, use.names):
resulting vector exceeds vector length limit in 'AnswerType'

私はすでにグーグルで検索しましたが、答えが見つかりませんでした(またはこれに対処する方法を理解していません)。私がやりたいことをするチャンスはありますか?:(

4

1 に答える 1

2
> 202397^2 > .Machine$integer.max
[1] TRUE

R は整数を使用してそのベクトルと行列にインデックスを付けます。行列は一種の折り畳まれたベクトルです。一部のタスクは R には大きすぎます。距離行列が n^2/2-n 計算の下三角部分のみを保持する必要があるという事実を説明するためにその積を 2 で割ったとしても、それでもより長い時間が必要です。 R が構築できるよりもベクトル。

> 202397^2/2- 202397 > .Machine$integer.max
[1] TRUE
于 2013-05-28T16:45:01.077 に答える