2013-02-28 51 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") 

但是我有麻烦这两个功能块组合成一个单一的指令,这样我可以读取目录中的所有文件应用相同的SQL查询。

有没有人有这样做的成功?

+0

你想这些文件是不同的数据帧还是全部合并成一个? – alexwhan 2013-02-28 12:43:51

回答

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")