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



我想让R读取名为的五个文件

"alpha_rarefaction_8000_0.txt"…"alpha_rarefaction_12000_0.txt"

并将其写入

"alpha8000"。。。"alpha12000"。

我使用了以下代码,但它不起作用。请帮忙。我的代码出了什么问题?

我试着搜索"如何在R函数中使用索引"或">如何在R中编写可执行循环",但没有任何帮助。在谷歌上搜索答案时,我应该使用什么样的搜索策略来获得有效的结果?

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"

因此,例如,datalist$alpha9000访问第二数据集(或者与datalist[[2]]一起访问)。

最新更新