2016-08-30 51 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)) 
相关问题