2016-08-30 89 views
0

您好,我正在嘗試從將要更新/添加到的文件夾創建一個包含多個.csv文件的數據框。將多個.csv文件更新爲單個數據幀

我發現以前的答案就在這裏但是我有一個非常簡單的誤差函數read.table中(文件=文件,頭=頭,月=月,報價=報價

錯誤,: 「文件」必須是字符串或聯結

dir<-"asdfasdfasdfasf/asdfasdfs" #change this to your directory 

temp <- list.files(pattern="*.csv") 
importDM<-lapply(temp, read.csv) 

rawDM<-read.csv(importDM, header = TRUE)  #will read csv 

請讓我知道我做錯了!

乾杯,

+1

'do.call(rbind,lapply(temp,read.csv,header = TRUE))'應該工作。 'importDM'是一個列表,而不是一個字符串;這就是爲什麼最後一行給你一個錯誤。 –

回答

1

從我在調用list.files函數中看到的內容,您應該添加路徑參數併爲其指定「dir」。 變量importDM是一個列表,並且rawDM變量不是必需的,因爲您已經在lapply中調用了read.csv。 如果文件具有相同的數據結構,則可以使用as.data.frame將importDM轉換爲數據幀。如果列表元素不遵循相同的結構,那麼它有點多。

這是一個有三個csv文件的實例。

dir <-"./data" #change this to your directory 
    temp <- list.files(pattern="*.csv", path = dir, full.names = TRUE) 
    importDM<-lapply(temp, read.csv, header = FALSE) 
    df <- as.data.frame(importDM) 

每個CSV文件包含三個號碼(1,2,3 - 4,5,6 - 7,8,9)

+0

謝謝Valter,這已經做到了! –

+0

很高興幫助! –

0

試試這個:

temp <- list.files(pattern="*.csv") 

dataset <- do.call(rbind,lapply(temp, 
read.csv,header=TRUE)) 
0

這應該做它 -

dir<-"asdfasdfasdfasf/asdfasdfs" #change this to your directory 
temp <- list.files(pattern="*.csv") 
importDM<-lapply(temp, read.csv) 
rawDM <- do.call(rbind, lapply(raw, read.csv, header = TRUE)) 
相關問題