Regex одна-две цифры по порядку в г - PullRequest
1 голос
/ 19 июня 2019

Я пытаюсь объединить файлы в R, используя шаблон имен файлов от 1 до 14, используя:

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 ]

2 голосов
/ 19 июня 2019

Вы можете использовать mixedsort() из пакета gtools.

library(gtools)
files <- mixedsort(list.files(pattern = paste0(i, "_[0-9]+.out")))
df <- do.call(rbind, lapply(files, read.table, header = TRUE))
1 голос
/ 19 июня 2019

Один из вариантов - извлечь числа из имени файла 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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...