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用於追加不同sheetwrite.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() #創建空worksheetsheet1 = createSheet(wb,"Sheet1") #創建裝載數據的sheetaddDataFrame(df1, sheet=sheet1,startColumn=1,row.names=FALSE) #向對應sheet中寫入數據sheet2 = createSheet(wb, "Sheet2") addDataFrame(df2, sheet=sheet2, startColumn=1, row.names=FALSE)saveWorkbook(wb, "File3.xlsx") #保存文件

Method4 writexl包

安裝並載入writexl包,這種方法類似於Method2。

library(writexl)sheets <- list("sheet1" = df1, "sheet2" = df2) #載入數據為data framewrite_xlsx(sheets, "file4.xlsx")

將R中的數據導入Excel中不同sheet就總結到這裡,謝謝您的閱讀!

推薦閱讀:

麻煩有excel高手幫我解釋下sumif(B:B,B:B,A:A)具體是什麼?
Power Query 應用領域有哪些?
Excel中有一列數據是以時間格式顯示的如:9:52:43,怎樣把這列數據變成17:52:43?
excel中vba是否能夠將數據填充到網頁中?
Excel數據透視表有什麼用途?

TAG:R編程語言 | MicrosoftExcel | 數據 |