【发布时间】:2019-03-18 19:23:18
【问题描述】:
我有一个 CSV 文件导入到 R 中,然后分成几个子集,这些子集构成了我的列表“importedData”:
filePath <- "Test.csv"
rowsPerBatch <- 58
numRows <- length(count.fields(file = filePath, sep = ","))
readSegment <- function(x) fread(file = filePath, sep = ",", header = TRUE, skip = rowsPerBatch*(x-1), nrows = rowsPerBatch-1)
importedData <- lapply(1:(numRows/rowsPerBatch), readSegment)
原始 CSV 文件只有 4MB。但是,R 中的列表对象是 17.8 MB 大。为什么会这样?有没有办法更有效地执行上述操作?
我计划扩大上述算法以处理几十个 CSV 文件,每个文件 >200MB。如果他们在R中对应的每个列表对象都是原来的3倍大小,恐怕内存使用会很快失控。
谢谢!
【问题讨论】:
标签: r list csv dataframe import