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