2016-02-11 47 views
2

我正在處理大的data.frame(例如,500k行/觀察值,2500列/特徵)。每個功能都是Boolean,所以只有兩個值是可能的TRUE/FALSE邏輯變量的內存大小

注意到一個非常高的內存使用情況後,我檢查了以下內容:

myVar = TRUE 
class(myVar) 
# [1] "logical" 
object.size(myVar) 
# 48 bytes 

我已經習慣了char尺度的bool期從C採取8Bit = 1Byte。有人能詳細說明這種大規模的開銷來自哪裏,還是我做錯了什麼?

+2

** R **中沒有變量,一切都是向量(或列表)。 –

回答

2

如下比較:約Memory更多信息由哈德利

object.size(logical()) 
# 48 bytes 

object.size(TRUE) 
# 40 bytes 

看帖子。

每個長度爲0的矢量佔用40個字節的內存。