文件的批量读取,一般在拿到数据时,如果是大批量的数据,那么就需要多次的读取 10个文件以为的内容通过10行的内容可以读取,但是如果是上百个文件,那么读取的 时候就比较复杂,解决思路是通过循环进行读取
setwd("D:/test")
# 先创造几个重复文件
# 分别在test1和test2 生成3个iris数据集
for(i in c("test1","test2")){
for(j in 1:3){
newdu<-paste(i,"/iris",j,".csv",sep="")
write.csv(iris,file = newdu)
}
}
# 获得目标文件夹
path<-"D:/test"
filedir <- dir(path = path,full.names = T)
filedir# 显示当先目录下有两个文件夹
## [1] "D:/test/test1" "D:/test/test2"
# 建立数据框存储数据
result <- data.frame()#最终数据
# 从目前的目录再次进去子目录数据
# 因为有2个文件夹,所以需要进一步读取
for(i in filedir){
dir1 <- dir(path = i,full.names = T)
for(j in dir1){
tmp<-read.csv(file=j)
result<-rbind(result,tmp)
}
}
head(result)
## X Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 1 5.1 3.5 1.4 0.2 setosa
## 2 2 4.9 3.0 1.4 0.2 setosa
## 3 3 4.7 3.2 1.3 0.2 setosa
## 4 4 4.6 3.1 1.5 0.2 setosa
## 5 5 5.0 3.6 1.4 0.2 setosa
## 6 6 5.4 3.9 1.7 0.4 setosa
# 从行列数可以明显看出多个文件进行了合并
dim(result)
## [1] 900 6
不知道还有没有其他方式处理这个问题,循环是个好东西,后面有机会想想循环实现多个模型构建 love&peace