7

大量のデータを生成し、それを R でキャッチすることを期待しています。行数、列数、および変数タイプによって、data.frame のサイズ (したがって必要なメモリ) を推定するにはどうすればよいですか?

例。

10000 行と 150 列があり、そのうち 120 が数値、20 が文字列、10 が因子レベルである場合、期待できるデータ フレームのサイズはどれくらいですか? 列に格納されているデータによって結果が変わるか (のようにmax(nchar(column)))?

> m <- matrix(1,nrow=1e5,ncol=150)
> m <- as.data.frame(m)
> object.size(m)
120009920 bytes
> a=object.size(m)/(nrow(m)*ncol(m))
> a
8.00066133333333 bytes
> m[,1:150] <- sapply(m[,1:150],as.character)
> b=object.size(m)/(nrow(m)*ncol(m))
> b
4.00098133333333 bytes
> m[,1:150] <- sapply(m[,1:150],as.factor)
> c=object.size(m)/(nrow(m)*ncol(m))
> c
4.00098133333333 bytes
> m <- matrix("ajayajay",nrow=1e5,ncol=150)
> 
> m <- as.data.frame(m)
> object.size(m)
60047120 bytes
> d=object.size(m)/(nrow(m)*ncol(m))
> d
4.00314133333333 bytes
4

3 に答える 3

15

以下を使用して、オブジェクトをシミュレートし、それを R オブジェクトとして格納するために使用されているメモリの見積もりを計算できますobject.size

m <- matrix(1,nrow=1e5,ncol=150)
m <- as.data.frame(m)
m[,1:20] <- sapply(m[,1:20],as.character)
m[,29:30] <- sapply(m[,29:30],as.factor)
object.size(m)
120017224 bytes
print(object.size(m),units="Gb")
0.1 Gb
于 2015-07-23T15:06:19.667 に答える
3

データフレームに格納するデータの例を格納するダミー変数を作成できます。

次に、 を使用object.size()してサイズを見つけ、それに応じて行と列を掛けます。

于 2015-07-23T15:09:01.050 に答える