2016-12-21 8 views
0

です。データテーブルを行列にキャストしようとしています。キャスト関数の最大列はR

ロングフォーマットのデータテーブルには数十万の行があり、それらをワイドフォーマットのの行列にフォーマットしたいと思います。

のevalでエラーが発生しました(代用品(expr)は、ENVIR:あなたはXを増加させたよう

library(stringi) 
library(data.table) 
library(reshape2) 

x <- 500 
test <- data.table(first=stri_rand_strings(x,5), 
        second=stri_rand_strings(x,5), 
        third=runif(x), 
        fourth= runif(x)) 
testMatrix <- acast(test,first~second, 
        value.var = "third", 
        fun.aggregate = mean, 
        fill=0) 

は、スニペットはいくつかの点で、次のエラーを生成します:

私は、次の例を作成しました、enclos): nは正の整数でなければなりません。
さらに、警告メッセージ: split_indices(.group、.n)では、整数から強制的に導入されたNAs

メモリ制限の警告が表示されません。ここで何が起きてるの?なぜそれが起こっているのですか?行列やキャスト関数のRAM以外の他の制限はありますか?

は、あなたはおそらくそれが表示され、エラーがない場合でも、メモリが不足している
ロエル

答えて

1

事前にありがとうございます。 x <- 5e3を設定すると、1,500万個の要素(191 MB)を持つmatrixが作成されます。 x <- 5e4を変更すると、25億個の要素を持つ行列が作成され、大まかに外挿法を使用すると行列が約19 GBになります。