从位于某个位置的所有csv文件中挑选数据

时间:2016-06-07 11:30:53

标签: r

我在一个公共位置有几个csv文件。每个csv文件具有相同的列名但数据不同。这些csv文件的名称不同。我可以在R中编写代码来读取所有csv文件中的数据,然后将其放在一个数据框中吗? csv文件的名称保持不同,所以我希望有一个代码,以便我不必显式指定csv文件的名称。感谢。

3 个答案:

答案 0 :(得分:2)

查看list.files列出某个位置的所有文件,read.csv将一个文件加载到R中,rbind将它们放入单个data.frame中。

代码看起来像这样(未经测试)

setwd(location)
fnames <- list.files()
csv <- lapply(fnames, read.csv)
result <- do.call(rbind, csv)

答案 1 :(得分:2)

filelist <- list.files(pattern = "\\.csv") # reads only .csv files in a folder
allcsv.files <- list()  
count <- 1
for (file in filelist) {
  dat <- read.csv(file) 
  allcsv.files[[count]] <- dat 
  count <- count + 1
}
allfiles <- do.call(rbind.data.frame, allcsv.files)

答案 2 :(得分:1)

    setwd("common location")
    f <- list.files()
    d <- data.frame()
    for(i in 1:length(f)){
       file <- read.csv(f[i],stringsasFactors=F)
       d <- rbind(d,file)
    }
    colnames(d) <- c("col1","col2")
    write.csv(d,"combined.csv",row.names=F)