分享

R语言中写入Excel的不同sheet表格

 育种数据分析 2021-11-18

「灌水系列」

这是一个朋友提的问题,R语言中有多个数据框,本来是一个数据框写入一个Excel表。但是现在想要写入到一个Excel表中,毕竟Excel才是最通用的软件,把每个数据框写入Excel不同的sheet表。

问题解决

「代码演示」代码解释:

  • 首先建立两个数据框aabb
  • 然后载入openxlsx软件包,主要是用于导出Excel格式
  • 重点是建立一个list,每个元素就是一个sheet,名称就是sheet的名称
  • 然后使用write.xlsx函数输出list对象即可

aa<-data.frame(id = 1:5,y = rnorm(5))
bb<-data.frame(id = 1:7,y = rnorm(7))
aa
bb

# install.packages("openxlsx") # 如果没有openxlsx包,运行该命令
library(openxlsx)
sheets = list("我是aa" = aa,"我是bb" = bb)
write.xlsx(sheets,"d:/我是输出结果.xlsx")

「结果展示:」可以看到:

  • 中文名的Excel表
  • 两个sheet表
  • sheet表的名称为“我是aa”,“我是bb”

问题举一反三

「代码延申」如果是有多个sheet表,想要批量读取,批量输出到Excel表中,可以使用for循环操作:

代码解释:

  • 批量生产list
  • 读取list的元素个数
  • 重命名sheet表名称
  • 输出到excel表中
list1 = list()
for(i in 1:10){
list1[[i]] = data.frame(ID=1:10,y=rnorm(10))
}
n = length(list1)
n

names(list1) = paste0("我是","sheet",1:n)
list1
write.xlsx(list1,"d:/我是批量sheet表.xlsx")

「结果视图:」

创造更多问题

如果你有一个Excel表,有几十个sheet表,这些表结构都相似,如果批量读入到R中,然后批量操作,最后再批量导出?

「熟悉的味道……」

朋友圈中各种python培训的软文,都在讲如何批量的处理,R语言是这样实现的,我师兄Excel很溜,自己编写了一套宏,从来看不上R语言,说我是”人为增加学习成本,Excel不香么???“

「所以自问自答的写作风格是如何练成的?」

写公众号时,就能发现日子是一成不变的,没有话题,没有动力,如何给自己找事情,需要自言自语。往高了说是”自省吾身“,往低了说是”江郎才尽“。所以写一些东西,给自己出出题,然后自己解答,然后自己翻车……

「下节预告:」

  • R 语言中批量读入Excel的不同sheet表格
  • Python中批量读入Excel的不同sheet表格
  • Python中批量写入Excel的不同sheet表格

不加上”批量“二字,体现不出编程语言的气质!

「上面的三个题目,可以写三篇博文」

灌水哪家强,飞哥来上场,田里虫儿飘,地面变汪洋……

快来关注我吧!

虽然水平不是最好的,

段子肯定是最好的,

虽然不是最专业的,

肯定是最有意思的。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多