在R中的相应变量中加载多个文件
Load multiple files in corresponding variable in R
有没有一种表达方式:
for (i in 1:10){
ga${i} <- read.table(file="ene.${i}.dat",header=T, sep = ",")
}
在 R.
我尝试使用许多其他构造,但 none 符合要求。
谢谢。
您可以使用一个空列表,然后使用粘贴函数来执行如下操作:
ga <- list()
for (i in 1:10) {
ga[[i]] <- read.table(file = paste('ene.', i, '.dat', sep = ''), header = TRUE, sep = ',')
}
然后,您将得到一个数据框列表。您可以索引为 ga[[1]]、ga[[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]))
有没有一种表达方式:
for (i in 1:10){
ga${i} <- read.table(file="ene.${i}.dat",header=T, sep = ",")
}
在 R.
我尝试使用许多其他构造,但 none 符合要求。
谢谢。
您可以使用一个空列表,然后使用粘贴函数来执行如下操作:
ga <- list()
for (i in 1:10) {
ga[[i]] <- read.table(file = paste('ene.', i, '.dat', sep = ''), header = TRUE, sep = ',')
}
然后,您将得到一个数据框列表。您可以索引为 ga[[1]]、ga[[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]))