r - 为什么光栅文件大小与对象大小有很大不同?
问题描述
我的磁盘上有一个 1.2 GB 的 .csv 文件。我使用R
's filename = read.csv(path)
-function,然后通过检查对象大小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 个字节作为浮点十进制值。
推荐阅读
- python - QSizePolicy.Minimum 和 QSizePolicy.Preferred 有什么区别?
- neo4j - 我在使用 GRANDstack 的 Netlify 生产中不断收到错误“未知指令”
- asp.net-mvc - 如何在 ASP.Net MVC 中使用 DropZone 显示 PDF 并使其可下载
- python - 将列表映射到字典中
- sql-server - 使用 SQL Server 获取列中第一次出现重复值的行
- java - JAVA:第一个输出很难理解
- macos - 在 Visual Studio for Mac(2019)上获取 System.Net.Sockets.SocketException“无法分配请求的地址”
- sql - 在标准 SQL bigquery 中使用日期函数声明变量
- python - yfinance 中的错误
- python - PYTHON - 在 pandas 中 matplotlib 的交叉表的堆叠水平条图中显示 100 的百分比