РЕДАКТИРОВАТЬ, чтобы включить предложение Грегора:
Один вариант:
filenames_in <- sprintf("Nest%03d.csv", 1:59)
filenames_out <- sub(pattern = "(\\d{3})(\\.)", replacement = "\\1_NEW\\2", filenames_in)
all_files <- matrix(c(filenames_in, filenames_out), ncol = 2)
И затем l oop через них:
for (i in 1:nrow(all_files)) {
temp <- read.csv(all_files[[i, 1]], skip = 3, header=F)
do stuff
write.csv(temp, all_files[[i, 2]], row.names = f)
)
Для этого purrr
-style, вы должны создать два списка, аналогичных приведенным выше, а затем написать пользовательскую функцию для чтения в файле, выполнить все функции и затем вывести ее.
например,
purrr::walk2(
.x = list(filenames_in),
.y = list(filenames_out),
.f = ~my_function()
)
Рассмотрим .x
и .y
как i
в цикле for; он просматривает оба списка одновременно и выполняет функцию для каждого элемента.
Более подробная информация доступна здесь .