Написание скрипта для чтения многих CSV-файлов с похожими именами файлов. - PullRequest
2 голосов
/ 07 апреля 2010

У меня есть несколько файлов .csv с похожими именами файлов, кроме числового месяца (т.е. 03_data.csv, 04_data.csv, 05_data.csv и т. Д.), Которые я хотел бы прочитать в R.

У меня два вопроса:

  • Есть ли в R функция, аналогичная Имя и назначение MATLAB позволит мне создать / объявить имя переменной внутри функции или цикла, который позволит мне прочитайте соответствующий файл .csv - т.е. 03_data.csv в 03_data data.frame, так далее.? Я хочу написать быстрый цикл сделать это, потому что имена файлов похоже.
  • В качестве альтернативы лучше создать один фрейм данных с первым файл, а затем добавить остальные, используя для цикла? Как бы я это сделал?

Ответы [ 2 ]

6 голосов
/ 07 апреля 2010

Вы можете посмотреть на этот связанный вопрос . Вы можете легко создавать имена файлов с помощью команды вставки:

file.names <- paste(sprintf("%02d",1:10), "_data.csv", sep="")

Как только у вас есть имена файлов (будь то путем их создания или чтения из каталога, как в другом вопросе), вы можете быстро импортировать их с лаком:

import.list <- lapply(file.names, read.csv)

Наконец, чтобы объединить список в один фрейм данных, самый простой подход - использовать приведенную ниже функцию reshape:

library(reshape)
data <- merge_recurse(import.list)
4 голосов
/ 07 апреля 2010

Также очень легко прочитать содержимое каталога, включая использование регулярных выражений, чтобы пропустить фокус только на определенных именах, например,

filestoread <- list.files(someDir, pattern="\\.csv$", full.names=TRUE)

возвращает все (полностью сформированные, включая полный путь) файлы в данном каталоге someDir, которые заканчиваются на «.csv». Вы можете полюбить лучшие регулярные выражения, которые задокументированы во многих местах.

После того, как у вас есть список файлов, все их легко прочитать, используя apply или lapply или цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...