R: аналогичные операции над файлами данных с похожими именами - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть 10 .dat файлов, которые соответствуют значениям xy 10 временных шагов.Имена файлов имеют следующий шаблон: tstepxx.dat.Например, tstep01, tstep35, tstep55, ....xx не выполняйте никаких заказов.Я хочу сделать одинаковые операции над всеми файлами.Я ищу способ, чтобы не повторять каждую операцию 10 раз.Например, чтобы прочитать и назвать их, я уже попробовал:

n <- c(01, 35, 55, 78, 90, 120, 150, 175, 190, 215)
For (i in n) {
paste0("data+", i) <- read.table(file = sprintf("tstep%s.dat", i))
colnames(paste0("data+", i)) <- c("x","h")}

или

for( n in i) {
paste0("data+", i) <- read.table(file = paste0("tstep",n,".dat"))
}

Но ни один из них не сработал.Как правильно это сделать?Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 14 февраля 2019

Hy!Вы можете сохранить ваши файлы в одной папке.Затем перечислите все файлы с вашим конкретным именем с помощью регулярного выражения, а затем прочитайте все найденные файлы с помощью пакета purrr и функции map.Преимущество map в том, что вы можете передавать аргументы в функцию read.table.Вот пример кода:

# load libraries
library(purrr)

# list of file paths
files <- list.files(path="./input/.", pattern="tstep\\d{2}\\.dat", full.names=T)

# list of loaded data
data <- map(files, read.table)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...