2016-12-29 5 views
1

Wenn x ein Datenrahmen ist, wie viel zusätzlichen Arbeitsspeicher muss für die folgenden Vorgänge benötigt werden?Wie viel Speicher verwendet as.data.table?

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

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

Sie 'mem_used' verwenden können,' mem_change' von 'pryr' – akrun

+0

@akrun Dank, dachte ich' as.data.table' tut 'setDT' wenn ich verwenden # 2 – user3226167

+0

die' Set' Funktionen sind sehr effizient – akrun

Antwort

2

Die mem_used, mem_change Funktionen von pryr verwendet werden.

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

Ich habe 12.1 MB in einer neuen Konsole statt 6.42 kB – user3226167

+0

@ user3226167 Ich verwende 'data.table1.10.0'. Jetzt bekomme ich 12,1 MB, vielleicht war die Sitzung früher mit anderen Objekten. Auch mit 'setDT', ist es in' kB' – akrun

+0

Ich finde auch, dass das Auslassen der Zeile 'mem_used()' ändert das Ergebnis – user3226167

0

Nachdem diese Daten und Tabelle laden, können Sie memory.size() verwenden Sie Speicher zu überprüfen, können Sie auch durch memory.limit() bei Bedarf Ihre sys-Speicher ändern.

Verwandte Themen