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