全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1825 1
2021-02-16
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语句进行查询和显示。


二维码

扫码加我 拉你入群

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

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

全部回复
2021-2-17 13:55:38
purrr包了解下。
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群