R数据写入Excel不同sheet

说明: 此处总结来源于某R群某大佬,留给自己备用!

以下介绍4中R直接写入到excel的方式:

首先自己造些数据

df1 <- data.frame(x = 1:10, y = LETTERS[1:10])
df2 <- data.frame(x = 2:11, y = LETTERS[2:11])
df3 <- data.frame(x = 3:12, y = LETTERS[3:12])

Method1 xlsx包

安装xlsx包,载入时要求载入两个依赖包rJava和xlsxjars。

library(rJava)
library(xlsxjars)
library(xlsx)

写入同一个表的不同sheet中

write.xlsx(df1, file="file1.xlsx", sheetName="sheet1", row.names=FALSE)
write.xlsx(df2, file="file1.xlsx", sheetName="sheet2", append=TRUE, row.names=FALSE)     #append用于追加不同sheet
write.xlsx(df3, file="file1.xlsx", sheetName="sheet3", append=TRUE, row.names=FALSE)     #append用于追加不同sheet

此时,file1.xlsx文件中有三个sheet,分别存储df1、df2和df3的数据。

Method2 openxlsx包

安装openxlsx包,并设置windows平台环境中的"R_ZIPCMD"参数,允许使用R命令(即instal.packages())和zip后缀压缩包进行安装。

Sys.setenv("R_ZIPCMD" = "C:\\RBuildTools\\3.4\\bin\\zip.exe")
library(openxlsx)

利用openxlsx包写入Excel中时,需将数据对应写入不同sheet中,然后组装成list,写进excel文件即可。

list_data <- list("Sheet1" = df1, "Sheet2" = df2)
write.xlsx(list_data, file = "****\\file2.xlsx")

Method3 openxlsx包

安装openxlsx包,环境设置应该就是确保装包过程顺利吧!继续利用openxlsx包,需要先穿件空工作簿(createworkbook),再创建sheet(createSheet),然后向对应sheet写入数据。这种方法的缺点在于:需要一个一个将数据装载进对应sheet,对码控党比较糟心,代码量太长,不如Method2。还是上代码玩玩吧!

wb = createWorkbook()     #创建空worksheet
sheet1 = createSheet(wb,"Sheet1")  #创建装载数据的sheet