2016-12-29 90 views
1

如果x是數據幀,需要多少額外內存才能執行以下操作?as.data.table使用多少內存?

y <- as.data.table(x) #1 

x <- as.data.table(x) #2 
+1

你可以使用'mem_used','mem_change' from'pryr' – akrun

+0

@akrun謝謝,我以爲'as.data.table' does'setDT'當我使用#2 – user3226167

+0

'set'功能非常有效 – akrun

回答

2

mem_used,可以使用從pryrmem_change功能。

library(pryr) 
df1 <- data.frame(v1 = 1:1e6, v2 = rnorm(1e6)) 
mem_used() 
#38.8 MB 


mem_change(dt <- as.data.table(df1)) 
#12.1 MB <--- 

mem_change(setDT(df1)) 
#94.1 kB <--- 
+0

我在一個新的控制檯中獲得了12.1 MB,而不是6.42 kB – user3226167

+0

@ user3226167我正在使用'data.table1.10.0'。現在,我正在獲得12.1 MB,可能會議早些時候有其他對象。另外,使用'setDT',它在'kB' – akrun

+0

我也發現省略了'mem_used()'這一行修改了結果 – user3226167

0

加載這些數據和表後,您可以使用memory.size()來檢查你的內存,還可以通過memory.limit如果需要改變你的SYS內存()。