专栏首页庄闪闪的R语言手册如何将多份数据保存在一个excel中?

如何将多份数据保存在一个excel中?

简介

这是我在数值模拟时,经常存在的问题。

如果输出了非常多的表格(例如,Rmse,Rb,Cp等),我应该怎么把这么多表进行导出?

最傻的方法:一个个导出呗,导到不同的excel表格中。但是问题来了,我要模拟10组参数,每个参数有5个表格,这样做的话会产生50个表格!这多让人头大。

较聪明的方法:使用openxlsx包(或者其他类似包),将每一组参数模拟结果放到一个excel中,其中各个表格依次放到单独的sheet中,这样最后只会生成10个表格啦。

使用教程

导出

write.xlsx() 保存多个 sheet 的数据在一个 excel 中。注意需要下载包 openxlsx

#下载包
install.packages("openxlsx")
#加载包
library(openxlsx)
# 整理数据
sheets = list("LEN"=round(len1/mc,3),"COV"=round(cov1/mc,3),
"RB"=round(rb1/mc,3),"RMSE"=round(rmse1/mc,3),
"MUSIG"=round(musig1/mc,3))
# 导出表
write.xlsx(sheets,"mu3n500.xlsx",colNames = TRUE,rowNames = TRUE)

代码讲解: 这里创建了一个列表变量sheets,第一个sheet名叫"LEN",数据为round(len1/mc,3)。以此类推,其他数据表按同样操作进行。最后通过write.xlsx() 将该变量进行保存。

注意:配合使用getwd()setwd(),设定自己想要保存的目录。

结果展示

最后找到该文件,小编这里得到的表格如下所示:包含了6个sheets,每个sheet指某个评价标准或者是参数信息。

结果展示

其他方法

前面的方法是我用的比较多的,为了看问题更加全面我还特地搜了一下,看看有没有其他方法。在stackoverflow[1]中发现还有以下几种方法可供选择。

方法一

可以使用xlsx包存储多个工作表。每个数据框使用不同的sheetName,然后使用参数append=TRUE将两个表放在同一个表格中。

library(xlsx)
write.xlsx(dataframe1, file="filename.xlsx", sheetName="sheet1", row.names=FALSE)
write.xlsx(dataframe2, file="filename.xlsx", sheetName="sheet2", append=TRUE, row.names=FALSE)

方法二

另一种方法是:你可以控制格式和数据放置位置,最后保存到sheet中。例如:

wb = createWorkbook()
sheet = createSheet(wb, "Sheet 1")

addDataFrame(dataframe1, sheet=sheet, startColumn=1, row.names=FALSE)
addDataFrame(dataframe2, sheet=sheet, startColumn=10, row.names=FALSE)

sheet = createSheet(wb, "Sheet 2")
addDataFrame(dataframe3, sheet=sheet, startColumn=1, row.names=FALSE)
saveWorkbook(wb, "My_File.xlsx")

这种方法可以说更加有效,可以将多个表放到同一个sheet中的任何位置,有兴趣的朋友可以试试。

可探索

在模拟试验的时候如果代码太乱,可以查阅:R问题|代码太乱了,谁帮我整理下?

如果想要人提醒你,数据跑完啦,可以查阅:程序结束后记得提醒我

最后想将结果制作成幻灯片,可以查阅:R沟通|用xaringan包制作幻灯片

R沟通|在Rstudio中运行tex文件 R沟通|舍弃Latex,拥抱Rbeamer吧!

参考资料

[1]

stackoverflow: https://stackoverflow.com/questions/27713310/easy-way-to-export-multiple-data-frame-to-multiple-excel-worksheets

本文分享自微信公众号 - 庄闪闪的R语言手册(Zss_R4ds),作者:庄闪闪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 多个二维数据如何保存进一张 Excel?

    前段时间小编分享了如何把多张 Excel 合并为一张 Excel 的多个 sheet,原文如下:

    用户6825444
  • 如何将Excel和xml文件数据保存到数据库

    Inherits System.Windows.Forms.Form     Dim DS1 As New System.Data.DataSet     ...

    Java架构师必看
  • 如何使用Tahoe-LAFS将您的数据保存在云中

    虽然Tahoe-LAFS可能类似于其他分散或分布式文件系统,如Gluster,Ceph或其他,但它解决的问题却不同。在最权威文件存储(LAFS)设计了以下事项:

    沈唁
  • Java中如何保证一个类在内存中的对象唯一性

    用户1696846
  • 如何在SQL Server中将表从一个数据库复制到另一个数据库

    程序你好
  • 如何判断一个元素在亿级数据中是否存在?

    我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。

    kirito-moe
  • 如何判断一个元素在亿级数据中是否存在?

    我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。

    Java3y
  • 如何判断一个元素在亿级数据中是否存在?

    我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。

    纯洁的微笑
  • 如何判断一个元素在亿级数据中是否存在?

    我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。

    五分钟学算法

扫码关注云+社区

领取腾讯云代金券