相关文章推荐
安静的水桶  ·  Django报错:You called ...·  2 月前    · 
重感情的水桶  ·  mongoose findOne - CSDN文库·  4 月前    · 
豪气的创口贴  ·  having bad problem ...·  1 年前    · 
爱笑的楼梯  ·  ModuleNotFoundError:没有 ...·  1 年前    · 

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

代码演示
代码解释:

  • 首先建立两个数据框 aa bb
  • 然后载入 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)) # 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)
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表格

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

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

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

R语言write.xlsx函数将数据写入Excel文件:写入Excel文件并自定义单的名称、将数据写入Excel文件新的单(sheet、将文件保存为xls文件格式(而不是xlsx) 前一段,写过一篇:R语言写入Excel不同sheet表格,最近学习了tidyverse的方法,感觉需要总结一下,更新一下知识结构。 本文准备用实际数据,做一下操作: 批量读取: 批量读取多个Excel数据 批量读取一个Excel数据的不同表格 批量写入 批量写入Excel数据 1,批量写入不同Excel 2,批量写入到一个Excel不同表格 1. 模拟数据 模拟数据的过程很简单,新建一个Excel,里面加点内容,然后复制粘贴,重命名。 懂了这么多编程知识,这一步显得不够高科技, #导入xlsx的数据,选择sheet?,第二步设为行名 library(readxl) data1<-read_excel("C:/Users/XXX/Documents/1.xlsx", sheet = "Sheet1", col_names = TRUE) #修改data2为你要的数据库名字,“data1”只是导入过程不要修改 data2=data.frame(data1,row.n... 数据示例一个excel文件内多个sheet,示例选用经典的iris数据,其为了增加难度,编号为1处的工作内不需要参与合并数据示例 需要合并三个, 其【数据说明】在Row Filter被过滤掉Knime操作示例Knime 示例工作流 workflow重要节点配置上图编号1和3处,均读取同一个文件的路径,详见图片内各个节点(node)的功能说明Read Excel Sheet Name(... 因为一个项目需要,原始数据全部是Excel文件,包括.xls和.xlsx格式,并且很多excel数据的格式并不规范,一个个转为csv格式不太现实,所以把所有能了解到的读取excel的方法都试了一遍,做个简单汇总。 相关的包:RODBC、xlsx、openxlsx、gdata、readxl,测试平台win7。 RODBC包-相关方法 RODBC-odbcConnectExcel2007() 可以使用R语言的"readxl"包来读取excel文件。可以使用read_excel()函数读取整个工作簿或指定工作。示例代码如下: # 安装包 install.packages("readxl") # 载入包 library(readxl) # 读取整个工作簿 data <- read_excel("data.xlsx") # 读取特定工作 data <- read_ex... 今天找了好多包来快速读取数量量比较大的excel包,但是总是出现OutOfMemoryError (Java): GC overhead limit exceeded,内存溢出报错。找到了两个R包可以解决该问题 目前找到三个包可以读取excel数据。 1 ,读取exce