2014-01-05 3 views
3

У меня есть папка, в которой у меня много файлов csv.Файлы с неизвестными именами файлов

Могу ли я прочитать их все, например, как zoo объект, не зная имя файла?

UPDATE

Я попробовал:

files <- list.files("C://Users//ramid//Desktop//Files//"); 
(na.omit(files)) 
for(i in files) { 
    filePath <- gsub(" ","", paste("C://Users//ramid//Desktop//Files//",files[i],".csv"), fixed=TRUE) 
    cat(filePath) 
    df <- read.csv(gsub(" ","", filePath, fixed=TRUE), header = TRUE, sep = ";",stringsAsFactors=FALSE) 
} 

Однако я получаю сообщение об ошибке:

Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : 
    cannot open file 'C://Users//ramid//Desktop//Files//NA.csv': No such file or directory 

я не имею никакого NA в моем списке файлов.

+0

'x <- list.files («путь/в/myfolder»); for (i in x) {read.csv(); л; л; blah} ' –

+0

@ SimonO101, когда я хочу распечатать список файлов, я получаю' character (0) 'в выводе. Как их вывести? – mrquad

+0

Возможно, вы не указали путь к папке правильно. Он не может найти папку. Убедитесь, что вы используете косые черты вместо обратных косых черт? –

ответ

4

Я хотел бы использовать комбинацию list.files и lapply:

list_of_files = list.files('.', pattern = '*csv', full.names = TRUE) 
list_of_csv_contents = lapply(list_of_files, read.csv) 
list_of_zoo = lapply(list_of_csv_contents, zoo) 

Или завернуть как read.csv и zoo в одном шаге:

read_into_zoo = function(path) { 
    contents = read.csv(path) 
    zoo_contents = zoo(contents) 
    return(zoo_contents) 
    } 
list_of_zoo = lapply(list_of_files, read_into_zoo) 

Эта стратегия хранения вещей в списках/массивов/векторов/матриц и использование apply стиль цикла - стратегия, которая очень хорошо работает в R.

+0

Thx много для вашего ответа! Однако я все еще получаю сообщение об ошибке «Ошибка в файле (файл,« rt »): не удается открыть соединение Кроме того: Предупреждающее сообщение: В файле (файл,« rt »): не может открыть файл 'AT0000613005.csv ': Нет такого файла или каталога'. Однако этот файл действительно существует! – mrquad

+2

Самый простой вариант - установить 'full.names' в' TRUE'. Затем вы получите полную форму пути 'list.files'. –

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