如何使用索引一次读取多个文件?

How to use an index to read multiple files at a time?

我想让 R 读取名称类似于

的五个文件

"alpha_rarefaction_8000_0.txt" ... "alpha_rarefaction_12000_0.txt"

写成

"alpha8000" ... "alpha12000", 分别.

我使用了下面的代码,但是没有用。请帮忙。我的代码有什么问题?

我尝试搜索“如何在 R 函数中使用索引”或“如何在 R 中编写可执行循环”,但没有任何帮助。在 Google?

上搜索答案时,我应该使用什么样的搜索策略来获得有效结果
for(i in seq(8000,12000,by=1000)) {
    paste("rare",i,sep="")<-read.table(paste("alpha_rarefaction",i,"0.txt",sep="_"))
}

read.rare<-function(i){
  paste("rare",$i,sep="")<-read.table(paste("alpha_rarefaction",$i,"0.txt",sep="_"))
}
i<-seq(8000,12000,by=1000)
read.rare(i)

我建议您将文件读入列表,可能这样做 -

## create the sequence for the file names
s <- 8:12 * 1e3
# [1]  8000  9000 10000 11000 12000

## create the full file names from the sequence above
files <- sprintf("alpha_rarefaction_%d_0.txt", s)
# [1] "alpha_rarefaction_8000_0.txt"  "alpha_rarefaction_9000_0.txt" 
# [3] "alpha_rarefaction_10000_0.txt" "alpha_rarefaction_11000_0.txt"
# [5] "alpha_rarefaction_12000_0.txt"

## Now we can loop the file names, reading the data into a list
## and setting the names for each element
datalist <- setNames(lapply(files, read.table), paste0("alpha", s))

这会将所有数据框保存在一个列表中,这将使以后使用它们变得容易得多。您可以使用 $ 运算符单独访问它们。他们有名字

names(datalist)
[1] "alpha8000"  "alpha9000"  "alpha10000" "alpha11000" "alpha12000"
例如,

so datalist$alpha9000 访问第二个数据集(也可以使用 datalist[[2]])。