我很好奇,无论是解释性如何,将数据存储在长格式还是宽格式中哪种更有效率?我使用 object.size()
来确定内存中的大小,但它们没有显著差异(长格式在大小方面略微更有效),而且该值仅为估计。
除了原始大小之外,我还想知道哪种格式在建模时更高效。
我很好奇,无论是解释性如何,将数据存储在长格式还是宽格式中哪种更有效率?我使用 object.size()
来确定内存中的大小,但它们没有显著差异(长格式在大小方面略微更有效),而且该值仅为估计。
除了原始大小之外,我还想知道哪种格式在建模时更高效。
matrix
的内存使用量应该是相同的:> object.size(long <- matrix(seq(10000), nrow = 1000))
40200 bytes
> object.size(square <- matrix(seq(10000), nrow = 100))
40200 bytes
如果效率的差异可以忽略不计,那么在使用R时的低效会远远抹平它们,所以几乎无需考虑,即使它们可以被测量。
对于data.frame
而言,情况就非常不同了,因为它是作为一个vector
列表的实现:
> object.size(as.data.frame(long))
41704 bytes
> object.size(as.data.frame(square))
50968 bytes