温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

openxlsx包批量导入导出Excel文件的实用技巧是什么

发布时间:2022-01-04 16:55:15 来源:亿速云 阅读:397 作者:柒染 栏目:大数据

这期内容当中小编将会给大家带来有关openxlsx包批量导入导出Excel文件的实用技巧是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

R是一个自由、免费、源代码开放的软件,主要用于统计分析计算和统计制图,其多样化的功能主要依赖于R包,本专栏将为大家介绍实用的R包工具,为大家详解包的操作,方便大家进行R语言的学习与实践。下面主要为大家介绍导入和导出excel文件的工具:openxlsx包,以及批量导入导出文件的一些小技巧。    
在之前的推送中我们为大家介绍了Excel文件的导入与导出  【R语言学习6】R数据导入与导出方法简介  ,今天主要为大家介绍openxlsx包具体的使用方法。
首先是包的安装与加载,目前该包已经在CRAN平台收录,因此可以参考我们之前分享的方法  【R语言学习3】R语言程序包来源与使用方法简介  进行安装
install.packages("openxlsx")library("openxlsx")
>      >      >      >    

导出excel文件


导出excel文件使用的是write.xlsx函数,通过介绍我们可以看到该函数主要是将数据框导出为xlsx文件,同时由于excel可存在多个sheet,该函数也支持导出a list of data.frames。

openxlsx包批量导入导出Excel文件的实用技巧是什么

因此命令如下:

l <- list("IRIS" = iris, "MTCARS" = mtcars) # 将R内置数据集iris和mtcars创建为listwrite.xlsx(l, "writeList.xlsx") #excel文件导出在该目录下并命名为writeList.xlsx# 要导出单个文件时,直接write.xlsx(变量名称,“保存位置与文件名")即可

可以看到最后导出的excel存在IRIS和MTCARS两个sheet

openxlsx包批量导入导出Excel文件的实用技巧是什么

>      >      >      >    

导入excel文件


文件的导入是使用read.xlsx函数,使用的方法也非常简单,主要设置excel的文件位置以及sheet名称或顺序(如果存在多个sheet)

openxlsx包批量导入导出Excel文件的实用技巧是什么

比如导入我们刚刚创建的excel文件中的第一个sheet,则命令为

iris <- read.xlsx(xlsxFile = "writeList.xlsx", sheet = 1)# 或者iris <- read.xlsx(xlsxFile = "writeList.xlsx", sheet = "IRIS")
>      >      >      >    

批量导入excel文件中的多个sheet


上述命令只能导入excel的一个sheet,在实际过程中可能需要一次性导入多个sheet,则可以使用循环函数实现:

data.list <- list() # 创建一个空的listsheetname <- getSheetNames("writeList.xlsx") #使用getSheetNames函数获取excel文件的sheet名称for(i in 1:length(sheetname)){  data.list[[i]]<-read.xlsx("writeList.xlsx",sheet=i) # 循环读取excel文件的每个sheet  names(data.list)[i] <- sheetname[i] #将data.list的每个文件名命名为每个sheet的名字}
>      >      >      >    

批量导入多个excel文件


有时需要将目录下的多个文件一次性导入R中,则可以使用如下命令实现,但是需注意的是该命令只支持每个excel只有一个sheet

myexcelfile = list.files(pattern="*.xlsx")   # list.files函数中用正则表达式匹配文件名的一个选项list2env(  lapply(setNames(myexcelfile, make.names(gsub("*.xlsx$", "", myexcelfile))),          read.xlsx), envir = .GlobalEnv) #匹配以.xlsx结尾的文件名,将其替换为空,也就是去掉.xlsx,只留文件名作为变量名
>      >      >      >    

批量导入多个txt或者excel文件


同理我们可以利用该命令批量导入csv或者txt文档

mytxtfile = list.files(pattern="*.txt") # 生成.txt文件的列表list2env(  lapply(setNames(mytxtfile, make.names(gsub("*.txt$", "", mytxtfile))),         read.table,header=TRUE,sep="\t"), envir = .GlobalEnv)         mycsvfile = list.files(pattern="*.csv")   # 生成.csv文件的列表list2env(  lapply(setNames(mycsvfile, make.names(gsub("*.csv$", "", mycsvfile))),         read.csv,header=TRUE,check.names=FALSE), envir = .GlobalEnv)

上述就是小编为大家分享的openxlsx包批量导入导出Excel文件的实用技巧是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI