Прочитайте несколько CSV-файлов в нескольких каталогах в R - PullRequest
0 голосов
/ 29 октября 2018

Я хочу прочитать несколько файлов .csv из разных каталогов, а затем поместить их в один фрейм данных.

У меня есть два вида каталогов:

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Ap deo/Variant/Ap_deo_1.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Ap deo/Variant/Ap_deo_2.csv


E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Bar soap/Variant/Bar_soap_1.csv


E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Austria/Bar soap/Variant/Bar_soap_2.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Ap deo/Variant/Ap_deo_1.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Ap deo/Variant/Ap_deo_2.csv

E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Bar soap/Variant/Bar_soap_1.csv


E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/Switzerland/Bar soap/Variant/Bar_soap_2.csv

так что у меня есть каталоги выше, поэтому мне нужно прочитать все файлы, основанные на файлах, которые я дам по пути, как показано в пути Австрия или Швейцария ... так что есть много стран и, например, Ap deo или мыло для бара есть 8 категорий в каждой стране, я хочу читать только папки с вариантами csv, поэтому эти csv-файлы могут быть 1, 2, 3 или иногда больше, чем то, как я могу прочитать эти файлы?

1 Ответ

0 голосов
/ 29 октября 2018

Может быть что-то вроде следующего.

base <- "E:/R_Process/R_Input_UDM/Greater Europe/CEW Hub/"
or1 <- "(Austria|Switzerland)"
or2 <- "(Ap deo|Bar soap)"

pat <- paste(or1, or2, "Variant/.*\\.csv$", sep = "/")

filenames <- list.files(path = base, pattern = pat, 
                        recursive = TRUE, full.names = TRUE)

df_list <- lapply(filenames, read.csv)
names(df_list) <- sapply(filenames, basename)
...