我的磁盘上有一个 1.2 GB .csv的文件。我使用R
的filename = read.csv(path)
函数,然后通过object.size(filename)
检查对象大小,结果发现它有 3721MB 大。为什么会有这种差异?
CSV 文件是一个纯文本文件,可能如下所示:
1,2,3,4
3,2,3,2
3,4,2,1
每个字符(即数字和逗号(都是一个字节。此文件大小为 24 字节(每行末尾都有一个不可见的"换行符"字符(。
读入 R 时,每个数字存储为浮点十进制数,即 8 个字节。上面的文件将是 8*24(值(= 96 字节大。
它可以走另一条路。如果改为写入上述文件:
1.0000000000, 2.0000000000, 3.00000000000, 4.000000000
[etc]
然后在 CSV 中,每个数字大约占用 12 个字节 - 每个数字、小数点、命令和零占用一个字节 - 当读入 R 时仍然只占用 8 个字节作为浮点十进制值。