Как связать несколько файлов с помощью цикла?

У меня есть набор из 30 файлов с общими корневыми именами (например, file-0001, file-0002 и т. Д.) С идентичными именами переменных (все файлы в одном каталоге), которые я хочу добавить в набор основных данных. Как мне это сделать?


person msoderstrom    schedule 29.08.2014    source источник


Ответы (3)


Вы можете попробовать (если все файлы находятся в одном рабочем каталоге)

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

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

Or

 library(data.table) 
 rbindlist(lapply(files, fread))
person akrun    schedule 29.08.2014

Используйте 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)
}
person digEmAll    schedule 29.08.2014

Составьте таблицу с именами всех ваших файлов и идентификатором, а затем напишите что-то вроде этого:

#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)

меняйте алгоритм на свою работу!

person Pau    schedule 29.08.2014