將資料框從 R 匯出到 Microsoft Excel

Jesse John 2023年1月30日
  1. 將資料框從 R 匯出到 Excel 的選項
  2. 使用 write.csv()write.csv2() 函式將資料框匯出為 CSV 檔案
  3. 使用包將資料框從 R 匯出到 Excel
  4. まとめ
將資料框從 R 匯出到 Microsoft Excel

R 是一個強大的資料分析和視覺化工具。但不是每個人都使用 R。

我們可能需要將資料分析的結果作為 Excel 檔案傳送給某人,或者我們可能希望在 PowerPoint 簡報中顯示資料。不管是什麼原因,將我們的資料匯出到 Excel 是一項有用的技能。

將資料框從 R 匯出到 Excel 的選項

R 通常提供多種方法來執行相同的任務。

本文將學習如何使用 utils 包的 write.csv()write.csv2() 函式將資料框匯出到 Excel。utils 包包含在 R 的安裝中並預設載入。

這是最通用的方法,因為它不需要額外的包。但它涉及兩個步驟。一、將資料框匯出為 CSV 檔案。二、在 Excel 中開啟 CSV 檔案,儲存為 Excel 檔案。

我們還將瞭解三個將資料框直接匯出為 Excel 檔案的包。這些軟體包需要由使用者安裝。他們可能還需要系統上存在其他軟體。

使用 write.csv()write.csv2() 函式將資料框匯出為 CSV 檔案

R 的內建功能允許我們通過下面描述的兩個步驟將資料框匯出到 Excel。

write.csv()write.csv2() 函式建立電子表格軟體可以讀取的 CSV 檔案。這些函式是建立純文字檔案的 write.table() 函式的便捷包裝器。

CSV 代表逗號分隔值。CSV 檔案是純文字檔案。資料框的每一行都成為檔案中的一行。列用逗號(或分號)分隔。

當使用 write.csv() 函式匯出資料框時,R 會建立一個文字檔案,其中逗號用作欄位(列)分隔符,句點用作小數點。

如果你想建立一個逗號作為小數點的檔案,你應該使用 write.csv2() 函式。此函式使用分號作為欄位分隔符,因為逗號用作小數點。

函式文件指出,這符合某些西歐語言環境中 CSV 檔案的 Excel 約定。

在下面的示例中,我們將建立一個小型資料框並使用 write.csv() 函式將其匯出為 CSV 檔案。第一個引數是資料框的名稱。

第二個引數是雙引號中的檔名。第三個引數防止建立一列行號。

預設情況下,它會將檔案儲存在 R 的當前工作目錄中。我們可以使用 getwd() 函式找到當前工作目錄。

# Create two vectors.
myText = c("Unit 1", "Unit 2", "Unit 3")
myNumbers = c(55, 1.53, 0.049)

# Create the data frame using the vectors.
df = data.frame(myText, myNumbers)

# Export the data frame as a CSV file.
# It will save the file in the current working directory of R.
write.csv(df, file="myCSVFile.csv", row.names = FALSE)

使用上面最後一行程式碼中的 write.csv2() 函式建立一個使用逗號作為小數分隔符的 CSV 檔案。

開啟 CSV 檔案並將其另存為 Excel 檔案

要從我們的 CSV 檔案建立 Excel 檔案,請按照以下步驟操作。

  • 在 Excel 中開啟 CSV 檔案。
  • 儲存檔案。Excel 將提示將其另存為 Excel 檔案。
  • 以所需檔名將檔案儲存在所需位置。

如果 CSV 檔案在 Excel 中看起來不正確,請使用純文字編輯器開啟它以驗證資料是否已正確匯出。如果 Excel 無法正確顯示正確的資料,請嘗試以下操作。

  • 如果 Excel 建立的列比預期的多或少,請在開啟 CSV 檔案時修改分隔符選項。使用在 CSV 檔案中找到的相同分隔符。
  • 如果 Excel 無法正確顯示小數字符,請在開啟檔案後嘗試更改相關列的數字格式。系統區域設定也可能提供線索。

使用包將資料框從 R 匯出到 Excel

幾個貢獻的包允許我們直接將資料框匯出到 Microsoft Excel。我們將瞭解三個這樣的包。

這些包有幾個功能和選項,允許我們自定義 Excel 檔案的各個方面。但是,我們將重點介紹將資料框匯出為 Excel 檔案的函式的基本用法。

如果這些軟體包尚未安裝,我們需要安裝它們。

請注意,如果我們嘗試載入具有相同名稱函式的多個包,R 將引發錯誤。如果發生這種情況,我們必須在載入所需的包之前使用語法 detach(package:name_of_package) 分離我們不再需要的包。

使用 openxlsx 包將資料框從 R 匯出到 Excel

openxlsx 包具有 write.xlsx() 函式來建立 Excel 檔案。

在 Windows 上,openxlsx 軟體包需要在計算機上安裝 RTools 軟體。否則,它的某些功能可能無法正常工作。

該函式的第一個引數是資料框,第二個引數是要建立的檔名。預設情況下,它將在 R 的當前工作目錄中建立檔案。

# Install the openxlsx package if you do not already have it.
# This is a one-time task.
install.packages("openxlsx")

# Load the openxlsx package.
library(openxlsx)

# Use the write.xlsx() function to create the Excel file.
# It will save the file to R's current working directory.
write.xlsx(df, file = "My_openxlsx_File.xlsx")

使用 xlsx 包將資料框從 R 匯出到 Excel

xlsx 軟體包需要安裝 Java(包括 JDK)。

這個包有 write.xlsx() 函式來從資料框建立一個 Excel 檔案。第一個引數是資料框。

第二個引數是要建立的檔案。第三個引數防止建立一列行號。

# Install the xlsx package if you do not already have it.
# This is a one-time task.
install.packages("xlsx")

# If the openxlsx package is currently loaded, detach it.
detach(package:openxlsx)

# Load the xlsx package.
library(xlsx)

# Use the write.xlsx() function to create the Excel file.
# It will save the file to R's current working directory.
write.xlsx(df, file = "My_xlsx_File.xlsx", row.names = FALSE)

使用 writexl 包將資料框從 R 匯出到 Excel

writexl 包具有 write_xlsx() 函式來建立 Excel 檔案。第一個引數是資料框,第二個引數是要建立的檔案路徑。

如果只給出檔名,它將在 R 的當前工作目錄中建立。

# Install the writexl package if you do not already have it.
# This is a one-time task.
install.packages("writexl")

# Load the writexl package.
library(writexl)

# Use the write_xlsx() function to create the Excel file.
# It will save the file to R's current working directory.
write_xlsx(df, path = "My_writexl_File.xlsx")

在 R Studio 中獲取有關 R 函式的幫助

有關 R Studio 中 R 函式的幫助,請單擊 幫助 > 搜尋 R 幫助,然後在搜尋框中鍵入函式名稱(不帶括號)。

或者,在 R 控制檯的命令提示符處鍵入一個問號,後跟函式名稱。例如,?write.table

有關任何包的更詳細文件,請在 CRAN 上搜尋包。

まとめ

R 寫入 CSV 檔案的預設功能足以將資料框匯出到 Microsoft Excel,但它需要兩個步驟。其他包允許我們一步匯出 Excel 檔案,但首先需要安裝。

其中一些還依賴於其他軟體。鑑於這些不同的選項,我們可以選擇最適合我們的方法。

作者: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.