如何使用循环rbind多个文件?

时间:2014-08-29 17:38:09

标签: r for-loop rbind

我有一组30个具有共同根名称的文件(例如file-0001,file-0002等),它们具有相同的变量名称(同一目录中的所有文件),我想要附加到主数据集。我该怎么做?

3 个答案:

答案 0 :(得分:5)

您可以尝试(如果所有文件都在同一个工作目录中)

 files <- list.files(pattern="file-[0-9]+")

 res1 <- do.call(`rbind`,lapply(files, read.table, header=T))

或者

 library(data.table) 
 rbindlist(lapply(files, fread))

答案 1 :(得分:1)

使用list.files按照特定模式获取某个文件夹中的所有文件,例如:

DF <- masterDF
filePaths <- list.files(path="folderpath",pattern="file-[0-9]+",include.dirs=T)
for(filePath in filePaths){
  currentDF <- read.table(filePath)
  DF <- rbind(DF, currentDF)
}

答案 2 :(得分:-1)

创建一个包含所有文件名称和id的表格,然后写下这样的内容:

#load the table with the name of the file & id
list<-read.table("Table.txt",header=T)

#define the range
i=max(list$id)+1

#make the loop
while (i>0)
i=i-1

#select the name of your file from the table
for(i in 1:length(list[,1])) {if (list[i,1]==id) {file<-list[i,2]} }
file

#set work directory
setwd(your directory)

#use your function
result<-rbind(file)

将算法更改为您自己的工作!