循环读取几个文件

时间:2016-01-17 01:54:58

标签: r csv

我有一堆csv文件,我想用R读取。当我使用下面的代码时,我只得到最后一个文件(在这种情况下为file.100.csv),它将存储在名为i的变量中

for (i in seq(10,100,10))
  i = read.csv(file=paste("file.", i, ".csv",sep=""), header=T, sep=",", skip=0, check.names=TRUE)

我希望将每个文件存储在名为10, 20, 30 ... 100的单独变量中。我也尝试将其存储在数组中:

for (i in seq(10,100,10))
 file_csv[[i]] = read.csv(file=paste("file.", i, ".csv",sep=""), header=T, sep=",", skip=0, check.names=TRUE)

但它给了我以下错误:

Error in file_csv[[i]] = read.csv(file = paste("file.", i, ".csv", sep = ""),  : 
  object 'file_csv' not found

无论如何,我不确定R数组是否可以包含不是按1而是按10递增的数字。我想为此目的,某种哈希表会更有用。

1 个答案:

答案 0 :(得分:0)

这不起作用,因为您将read.csv的结果分配给i(而不是i的解释,例如在循环的第一轮中为1)。您需要的是assign

for (i in 1:10) {assign(paste0("variable", i), 5)}

分配变量名称​​ 解释。运行上面的命令会将5分配给variable1 - variable10。在你的情况下,你需要

for (i in seq(10,100,10)) {
  assign(i, read.csv(file=paste("file.", i, ".csv",sep=""), header=T, sep=",", skip=0, check.names=TRUE))
}