dir_dta <- "d:/tmp/"
setwd("d:/tmp/") #设置默认目录,导入时可以忽略路径
file1<-list.files(path=dir_dta,full.names=F) #列出文件列表(文件名)
#file2<-list.files(path=dir_dta,full.names=T)
tmpt<-read_excel(file1[1]) #导入列表中第一个文件
tmpt<-as.data.frame(sapply(tmpt,as.character)) #将表中类型转换为字符型,统一类型
code<-strsplit(file1[1],".",fixed = TRUE)[[1]][1] #提取文件名
tmpt<-cbind(list(rep(code,nrow(tmpt))),tmpt) #将原来的表增加一列,用文件名填充
names(tmpt)[1]<-"code" #修改增加的列名为code
file1[1]
for (i in 2:length(file1)){ #从列表中第二个文件开始循环
na1<-strsplit(file1[i],".",fixed = TRUE) #取文件名
na2<-na1[[1]][1]
tab2<-read_excel(file1[i]) #导入表
tab2<-as.data.frame(sapply(tab2,as.character)) #格式化
tab2<-cbind(list(rep(na2,nrow(tab2))),tab2) #导入的表也增加列
names(tab2)[1]<-"code" #重命名列
tmpt<-full_join(tmpt,tab2) #用新表和第一个表做全连接,值赋给第一个表
}
view(tmpt)
原文:https://www.cnblogs.com/eun007/p/15142894.html