如何在R中使用for循环加载N行数据并将其分配给变量

时间:2019-03-27 04:56:41

标签: r dataframe

我有一个巨大的数据集,称为df(约16gb数据)。 想要一次打开100行,并且每次读取100行时,我们都将其分配给一个变量。 这意味着第一个变量应在1-100之间,第二个变量应在101-200之间。

将前100行数据加载到10个变量中的代码应为:

reportlen <- seq(10,100,10)
for (i in length(reportlen)){
  file <- fread(paste0("C:/Users/Documents/data.csv,", "nrows =",reportlen[i]))
  assign(paste0("f", i),file)
} 

但是,我遇到了一个错误,它给了我空值。

1 个答案:

答案 0 :(得分:0)

如果您真的想采用当前的方法,则可能必须使用skip的{​​{1}}功能,以将当前的读取量抵消已经读取的任何数量。

但是,考虑到您打算将整个文件都带入内存,我建议一次性读取整个文件:

fread

变量df <- read.csv(file="C:/Users/Documents/data.csv") parts <- str(split(df, (as.numeric(rownames(df))-1) %/% 100)) 应该是一个包含多个数据帧的列表,每个数据帧的长度为100行(最后一个数据帧可能除外,它可能还有其他计数)。