Как добавить столбец в каждый файл CSV, где значение столбца зависит от имени CSV - PullRequest
0 голосов
/ 11 октября 2019

У меня 50 папок. В каждой папке у меня есть четыре набора данных с именем: xx_14, xx_15, xx_16, xx_17. Число указывает на год. Для каждой папки мне нужно объединить четыре набора данных вместе.

Мне также нужно создать новый столбец в объединенном наборе данных (для каждой папки), где значение в этом столбце - это год (период времени), соответствующий году этих четырех наборов данных.

Я не могу просто сделать их вручную в R, потому что у меня есть 50 папок, каждая с 4 типами наборов данных, поэтому мне нужно создать цикл for для этих 50 папок. Независимо от того, какая это папка, файлы csv всегда имеют вид xx_14 или 15, 16 или 17.

1 Ответ

0 голосов
/ 05 ноября 2019

Попробуйте этот базовый подход R:

#Get list of all 50 folders
all_folders <- dir("/path/to/outer/folder", full.names = TRUE)

#Loop over each folder
lapply(all_folders, function(x)  {
   #Get all the filenames in that folder
   file_path <- list.files(x, full.names = TRUE)
   #Read all the files and rbind them
   do.call(rbind, lapply(file_path, function(x) 
           #Add a new column with name of the filename
           transform(read.csv(x), year = sub("\\.csv$", "", basename(x)))))
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...