在R中的相应变量中加载多个文件

时间:2015-12-31 21:03:34

标签: r loops batch-processing

有没有办法说出类似的话:

for (i in 1:10){
  ga${i} <- read.table(file="ene.${i}.dat",header=T, sep = ",")
}

在R。

我尝试使用许多其他构造,但没有一个符合要求。

感谢。

2 个答案:

答案 0 :(得分:2)

我们可以先提取文件名。

ga <- lapply(list.files(path = ".", pattern = "\\.dat"), read.csv)

或循环:

lf <- list.files(path = ".", pattern = "\\.dat")
ga <- structure(vector("list", length(lf)),
                names = gsub("\\.dat", "", lf))
for (i in seq_along(ga))
    ga[i] <- read.csv(lf[i])

将数据分配给单独的变量:

lf <- list.files(path = ".", pattern = "\\.dat")
fn <- gsub("\\.dat", "", lf)
for (i in seq_along(lf))
    assign(fn[i], read.csv(lf[i]))

答案 1 :(得分:1)

您可以使用空列表,然后使用粘贴功能执行以下操作:

ga <- list()
for (i in 1:10) {
  ga[[i]] <- read.table(file = paste('ene.', i, '.dat', sep = ''), header = TRUE, sep = ',')
}

然后,您将拥有一个数据框列表。您可以索引为ga [[1]],ga [[2]]等来访问它们。