在一個文件夾下有很多欄位一致,格式統一的數據文件(csv,txt,excel),可以使用R快速的統一成一個文件方便後續分析和處理。
將需要處理的欄位一致,格式統一的數據文件(csv,txt,excel),放到文件夾內,並將此文件夾設置為工作目錄,下面分情況介紹如何批量讀取並合併數據。
1)文件夾內只有一種格式的文件:csv,txt,excel;
2)文件夾內有多種格式的文件:csv,txt,excel以及其他的png,pdf等文件;
設定工作目錄,將需要處理的數據文件放到工作目錄下
#查看當前路徑下所有文件
#setwd(D:\\..\\data\\)
a = list.files()
a dir = paste("./",a,sep="")
n = length(dir)
merge.data = read.csv(file = dir[1],header=T,sep=",")
for (i in 2:n){
new.data = read.csv(file = dir[i], header=T, sep=",")
merge.data = rbind(merge.data,new.data)
}
write.csv(merge.data,file = "./merge_all.csv",row.names=FALSE)
2 存在多種類型文件,僅讀取csv格式文件當工作目錄下多種類型文件時,只讀取其中一種
list.files()
a = list.files(pattern = ".csv")
merge.data = read.csv(a[1],header=T,sep=",")
for (i in 2:n){
new.data = read.csv(a[i], header=T, sep=",")
merge.data = rbind(merge.data,new.data)
}
write.csv(merge.data,file = "./merge_only_csv.csv",row.names=FALSE)
註:因txt文件亦可以直接用R基本讀入方式讀取,更改read.table即可,此處不舉例。
3 存在多種類型文件,僅讀取excel格式文件因R不能直接讀取excel文件,需要加載R包,個人習慣利用readxl包讀取。
library(readxl)
list <- list.files()
a <- grep('\\.xlsx', list, value = TRUE)
n = length(a)
merge.data = read_excel(a[1])
for (i in 2:n){
new.data = read_excel(a[i])
merge.data = rbind(merge.data,new.data)
}
write.csv(merge.data,file = "./merge_only_excel.csv",row.names=FALSE) 低時間投入成本,高效率回報🤭
【覺得不錯,右下角點擊點個「在看」,轉發就是最好的支持和讚賞,謝謝!】