2016-01-20 2 views
2

Я пытаюсь прочитать и объединить все файлы csv в каталоге. Я нашел этот отличный ответ SO: Importing multiple .csv files into R, но он, похоже, не работает для меня.R читать все файлы в каталоге

Я могу перечислить файлы (они находятся в моей домашней директории в поддиректории под названием «тест»):

library(data.table) 
files <- list.files(path = "test",pattern = ".csv") 
print(files) 

Это правильно печатает содержимое каталога.

Когда я пытаюсь загрузить их с помощью

temp <- lapply(files, fread, sep=",") 
data <- rbindlist(temp) 

я File 'xyz.csv' does not exist. Include one or more spaces to consider the input a system command.

ли я каким-то образом указать путь снова? Я боролся, что эта информация уже содержится в файловом объекте. Спасибо за любую помощь!

+0

Я предполагаю, что ошибка находится в 'temp <- lapply (files, ...)' step? Вы можете попробовать с помощью 'library (readr); lapply (files, read_csv) ' – akrun

+0

@akrun Да, ошибка указана в этой строке – Smajl

+0

Я не знаю, является ли это проблемой разделителя, можете ли вы попробовать' library (readr); lapply (files, read_csv) 'или даже' base R', то есть 'lapply (файлы, read.csv, header = TRUE, stringsAsFactors = FALSE)' – akrun

ответ

7

Я подозреваю, что проблема заключается в пути к файлам. Скорее всего, потому, что ваш рабочий каталог находится на одном уровне от каталога "test". Попробуйте:

list.files(path = "test", pattern = ".csv", full.names = TRUE) 

full.names аргумент будет включать путь к файлам в его выходе.

Смежные вопросы