• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

R语言:批量循环读取一系列excel文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

例如有20个excel文件分别代表20个亚组的数据,文件名为亚组名P01-P20,每个文件中的变量个数和名称等都是相同的,可通过以下命令实现一次性读取20个excel,并生成一个新变量提示来自哪个亚组(同时展示如何读取每个excel第二列数据的前11个字符生成一个新变量id)。


例如P01数据如下:




首先,读取excel文件先要安装package: XLConnect:

install.packages(XLConnect)
library(XLConnect)


其次,生成代表亚组名称的新变量和第二列前11个字符的新变量:

temp<-list.files(pattern="*.xls")     //生成一个新变量temp代表文件路径中所有后缀为xls的文件的文件名

head(temp)


a=readWorksheetFromFile(temp[1],sheet=1)         //读取temp1号excel即P01,命名为数据库a

a$plate=substr(as.character(temp[1]),1,3)        //生成变量plate,数值为temp里的plate名称(字符1到3)

a$id=substr(a[,2],1,11)     //生成变量id, 值为第二列数据的前11个字符


ncol(a)   //看看a有多少个变量,新生成的plate和id变量为最后两个,假设为第58和59个变量

write.table(a[,c(58,59)],file = "newfile.txt",row.names=F, na="",col.names=FALSE, sep=" ",append = T,quote=F)  

//生成txt文件newfile.txt为p01文件中的plate和id,展示如下



最后,对P02-20写一个for循环语句,导入进去即可

for (i in 2: length(temp)){
  newfile=read.table("newfile.txt")
  b=readWorksheetFromFile(temp[i],sheet=1)
  b$row=substr(as.character(temp[i]),1,3)
  b$extract=substr(b[,2],1,11)
  write.table(b[,c(58,59)],file = "newfile.txt",row.names=F, na="",col.names=FALSE, sep=" ",append = T,quote=F)
}


//命令翻译:对每一个i值,i从2到temp的最大值之间取值,生成一个文件newfile=之前P01的txt文件,下面四行是重复上面生成P01file的过程。



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
人工智能入门-R语言数据分析87发布时间:2022-07-18
下一篇:
Centos安装R语言发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap