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