正则表达式中r的两位数

时间:2019-06-19 10:29:11

标签: r regex

我正在尝试使用以下文件名从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。知道如何制作吗?

2 个答案:

答案 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))