2013-02-28 3 views
2

Я пытаюсь открыть несколько файлов csv, используя список, такой как нижеследующий;Использование R-функций lapply и read.sql.csv

filenames <- list.files("temp", pattern="*.csv", full.names=TRUE) 

Я нашел примеры, которые используют lapply и read.csv, чтобы открыть все файлы в временной директории, но я знаю appriori каких данных мне нужно извлечь из файла, поэтому, чтобы сэкономить время на чтение я хочу используйте расширение SQL этого;

somefile = read.csv.sql("temp/somefile.csv", sql="select * from file ",eol="\n") 

Однако у меня возникли проблемы Объединяя эти две функциональные части, в одну команду так, что я могу читать все файлы в каталоге, применяя один и тот же запрос.

Неужели кто-то добился успеха?

+0

Вы хотите файлы должны быть разными фреймами данных или все объединены в один? – alexwhan

ответ

1

Если вы хотите получить список dataframes из каждого файла (предполагается, что ваш рабочий каталог содержит файлы .csv):

files <- list.files(".", pattern="*.csv") 
df.list <- sapply(filenames, read.csv.sql,sql="select * from file ",eol="\n",simplify=F) 

Или, если вы хотите, чтобы они все объединены:

df <- ldply(filenames, read.csv.sql,sql="select * from file ",eol="\n") 
Смежные вопросы