我正在尝试使用以下文件名从1到14的模式来合并R中的文件:
files = list.files(pattern = paste0(i, "_[0-9]+.out"))
DF <- read.table(files[1], h = T)
for (f in files[-1]) DF <- rbind(DF, read.table(f, h = T))
它按11-14到1-9的顺序合并文件,我需要从1到14。知道如何制作吗?
答案 0 :(得分:2)
您可以使用gtools软件包中的mixedsort()
。
library(gtools)
files <- mixedsort(list.files(pattern = paste0(i, "_[0-9]+.out")))
df <- do.call(rbind, lapply(files, read.table, header = TRUE))
答案 1 :(得分:1)
一种选择是从文件名order
中提取数字并重新排序files
files <- files[order(as.numeric(sub(".*_(\\d+).out", "\\1", files)))]
从这里您可以继续
DF <- read.table(files[1], h = T)
for (f in files[-1]) DF <- rbind(DF, read.table(f, h = T))