2016-04-11 3 views
0

У меня есть подкаталоги с именем «0001» до «0999», в каждом из них есть файл с именем «abc.csv». Как просмотреть все эти файлы в списке?чтение файлов из подкаталогов

Вот мой подход до сих пор:

abcs <- list() 
for(i in seq_len(999)) 
    eval(parse(text=paste0("abcs[[",i,"]] <- read.csv('~/mydir/0000",i,"/abc.csv')"))) 

Однако, я должен сделать это отдельно для каждого количества ведущих нулей.

Должен быть более простой способ, спасибо. Я знаю, что есть функция list.dir().

ответ

1

Просто используйте рекурсивный аргумент в list.files

list_of_files <- list.files("~/mydir/", pattern = ".csv", recursive = T) 
list_results <- lapply(list_of_files, read.csv) 

Это то, что вы ищете?

+0

очень приятно, спасибо. Поскольку у меня есть другие файлы csv в этих каталогах, кроме abc.csv, я указал pattern = "abc.csv" – spore234

+1

, вы также можете использовать 'fread' из пакета data.table', если вам нужно более быстрое чтение. – user3293236

0

Как об этом? sprintf («% 04d», n) колодки нули перед номером до необходимой длины

abcs <- lapply(1:999, function(n) read.csv(paste0(sprintf("%04d", n),"/abc.csv")))