尝试通过使用 fread() 将 csv 文件直接从 zip 加载到 R 来节省磁盘空间。只是想知道是否有一种方法可以在加载之前从 csv(在 zip 中)获取类似于 nrow() 或 dim() 的内容,以便了解对象的大小并避免耗尽可用内存。有什么建议?如果有更好的方法来确定 csv 在解压缩并加载到 R 时是否会太大,那也很高兴知道。谢谢(ps 使用 Windows 10)。
最佳答案
一个非常好的替代方案,尤其是在快速读取压缩文件方面是 vroom :
https://vroom.r-lib.org :“......它只是索引每个记录所在的位置,以便以后可以读取。”因此,加载非常大的数据集应该是安全的,而不会有陷入锁定的风险。
require(vroom)
vroom("./data.csv.gz")
# indexed 0B in 0s, 0B/sindexed 1.00TB in 0s, 1.25PB/sRows: 200
# Columns: 6
# Delimiter: ","
# chr [6]: Column1, Date, Column2, Subtable_Column1, Subtable_Column2, Subtable_Column3
#
#
# Use `spec()` to retrieve the guessed column specification
# Pass a specification to the `col_types` argument to quiet this message
# A tibble: 200 x 6
... <data> ...
关于r - 如何计算zip文件中csv文件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54694961/