R

R 讀取 Excel 檔案表格資料教學與範例

介紹如何使用 R 語言讀取 Excel 的 xlsx、xls 與 csv 檔案,匯入表格資料。

一般常見的 Excel 檔案有 *.xlsx*.xls 與 *.csv,以下是在 R 中讀取這些檔案的方法教學。

讀取 XLSX 檔案

若要讀取 Excel 的 *.xlsx 檔案,可以使用 openxlsx 套件,此套件可從官方的 CRAN 套件庫下載安裝:

# 安裝 openxlsx 套件
install.packages("openxlsx")

安裝完成之後,將其載入即可使用:

# 載入 openxlsx 套件
library(openxlsx)

使用 openxlsx 套件的 read.xlsx 讀取 Excel 檔案,工作表的指定可以使用名稱或是數字索引:

# 讀取 Excel 檔案的「工作表1」
df <- read.xlsx("file.xlsx", sheet = "工作表1")

# 讀取 Excel 檔案的第 1 張工作表
df <- read.xlsx("file.xlsx", sheet = 1)

若表格資料中沒有標題列,可以將 colNames 設定為 FALSE

# 沒有標題列
df <- read.xlsx("file.xlsx", colNames = FALSE)

若將 detectDates 參數設定為 TRUE 的話,讀取資料時會自動偵測資料是否為日期類型的資料,並自動將資料的型態轉為 R 的日期資料:

# 自動偵測並轉換日期資料
df <- read.xlsx("file.xlsx", detectDates = TRUE)

如果只要讀取表格中部分的資料,可以使用 startRow 設定起始的讀取列,或是直接以 rowscols 參數指定讀取範圍:

# 從第 10 列開始讀取資料(跳過前 9 列)
df <- read.xlsx("file.xlsx", startRow = 10)

# 讀取第 5 到 10 行與第 2 到 5 列的資料
df <- read.xlsx("file.xlsx", rows = 5:10, cols = 2:5)

# 讀取第 2, 4, 5 行與第 4, 5 列的資料
df <- read.xlsx("file.xlsx", rows = c(2, 3, 4), cols = c(4, 5))

讀取 XLS 檔案

若要讀取舊版 Excel 的 *.xls 檔案,可以使用 readxl 套件來處理。

readxl 套件同樣可以從官方的 CRAN 套件庫下載與安裝:

# 安裝 readxl 套件
install.packages("readxl")

# 載入 readxl 套件
library(readxl)

以下是使用 readxl 套件讀取 Excel 檔案的範例。

# 讀取 Excel 檔案的「工作表1」
df <- read_excel("file.xls", sheet = "工作表1")

# 讀取 Excel 檔案的第 1 張工作表
df <- read_excel("file.xls", sheet = 1)

# 沒有標題列
df <- read_excel("file.xls", col_names = FALSE)

指定讀取範圍的方式有兩種,一種是以英文表示欄號、數字表示列號的方式:

# 讀取指定範圍資料
read_excel("file.xls", range = "C1:E7")

另一種範圍指定方式是以列號(R)與行號(C)來表示:

# 讀取指定範圍資料(等同於 C1:E7)
read_excel("file.xls", range = "R1C2:R2C5")
readxl 套件可以讀取 XLSX 與 XLS 兩種 Excel 檔案格式,此處的範例也適用於 XLSX 檔案。

讀取 CSV 檔案

R 語言本身就有內建讀取 CSV 檔案的功能,只要使用 read.csv 即可直讀取 *.csv 檔案:

# 讀取 CSV 檔案
df <- read.csv("file.csv")

read.csv 預設會將 CSV 檔案的第一列視為標題列,如果自己的 CSV 檔案的資料沒有包含標題列,可以將 header 參數設定為 FALSE

# 讀取 CSV 檔案(沒有標題列)
df <- read.csv("file.csv", header = FALSE)

通常 CSV 檔案的欄位分隔符號都是逗號,如果遇到不是以逗號分隔欄位的特殊的 CSV 檔案,可以自行以 sep 參數指定分隔字元:

# 讀取 CSV 檔案(欄位分隔符號為 Tab)
df <- read.csv("file.csv", sep = "\t")

若要指定檔案的編碼,可以使用 fileEncoding 參數:

# 讀取 CSV 檔案(檔案編碼為 UTF-8)
df <- read.csv("file.csv", fileEncoding = "UTF-8")

read.csv 預設會將表格中的文字資料自動轉為 R 的因子(factor),如果想要文字資料維持字元的格式,可以將 stringsAsFactors 參數設定為 FALSE

# 讀取 CSV 檔案(不要將文字轉為因子)
df <- read.csv("file.csv", stringsAsFactors = FALSE)
Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago