楼主: stevekkk
1949 1

[程序分享] R语言批量处理excel文件 [推广有奖]

  • 0关注
  • 0粉丝

已卖:5份资源

本科生

87%

还不是VIP/贵宾

-

威望
0
论坛币
14 个
通用积分
119.4751
学术水平
6 点
热心指数
6 点
信用等级
6 点
经验
5988 点
帖子
37
精华
0
在线时间
146 小时
注册时间
2013-8-10
最后登录
2023-12-28

楼主
stevekkk 发表于 2021-2-16 22:01:05 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
readxl包,XLConnect包

实例:一批实验包含248个样品,检测样品,得到t1-5.xlsx,t1-6.xlsx,t1-7.xlsx........等共248个表格,每个excel文件中包含一个样品的结果,其中还有部分仪器和参数信息。需要从每个文件中提取实验数据。可以用R对excel进行批处理。代码如下:

library(readxl)
library("XLConnect")
path <- "e:/222"
filenames <- dir(path)  
filepath <- sapply(filenames,function(x){paste(path,x,sep='/')})   
data <- lapply(filepath,function(x){readWorksheetFromFile(x,sheet=1)})  




思路:用function()函数将文件定义为变量x,再使用apply()函数家族(代替for循环)历遍读取目录下所有文件。
代码详解:

path <- "e:/222"  
#定义目录路径。要处理的excel全在e:/222目录下

filenames <- dir(path)  
#定义文件名为路径下的所有目录名。即获取了该路径下的所有文件名

1.png



filepath <- sapply(filenames,function(x){paste(path,x,sep='/')})
#定义文件路径。paste()函数连接字符串,即path+x,用/分隔,即 e:/222/x

2.png



data <- lapply(filepath,function(x){readWorksheetFromFile(x,sheet=1)})
#按定义的路径历遍读取所有文件。

write.csv(data,file="e:/all.scv")
#把读取的248个文件内容拼接成一个csv文件,保存在e盘

直接在excel中提取需要的字段,或者把拼接的csv文件导入access数据库,用sql语句进行查询和显示。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:EXCEL 批量处理 xcel exce cel 批量处理 excel 表格 xlsx

已有 2 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论
llb_321 + 5 精彩帖子

总评分: 论坛币 + 5  学术水平 + 3  热心指数 + 3  信用等级 + 3   查看全部评分

沙发
屋檐滴语 发表于 2021-2-17 13:55:38
purrr包了解下。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-6 08:58