今天來學習下怎麼將xls/xlsx格式文件中的數據導入到R中。
主要介紹三種方式。
下面讀取的數據文件默認放置於工作目錄中。
在讀取數據前,可以先閱讀這篇文章(猛戳:Excel數據導入R前的注意事項),將Excel中的數據進行預處理,方便讀取以防出錯。
另外spss、sas、stata等軟體的數據格式文件導入請參見這篇文章(猛戳:R語言統計與繪圖:數據的輸入與輸出)。
1. 從剪切板讀取數據xls/xlsx文件不同於txt、csv文件,需要使用其他的方式讀取。
首先對於小樣本數據,可以打開Excel文件,將需要讀取的數據複製到剪切板,然後使用read.table()函數讀取剪切板中的數據即可。
my_data <- read.table(file = "clipboard", # 讀取剪切板中的數據
sep = "\t", # 指定分隔符
header=TRUE) # 指定第一行是否為列變量名稱上面是Windows系統的數據讀取方式,水果機的讀取代碼略有區別。
# 水果機使用pipe(pbpaste)函數讀取剪切板的數據
my_data <- read.table(pipe("pbpaste"),
sep="\t",
header = TRUE)
2. 使用readxl包讀取數據對於大樣本的數據,使用剪切板就比較麻煩,可以使用readxl包來讀取數據。這個包是Hadley Wickham大神開發的。
readxl包中的read_excel()函數可以讀取xls/xlsx文件。
install.packages("readxl") # 安裝R包
library("readxl") # 加載R包
# 讀取xls文件,文件位於工作目錄下
my_data <- read_excel("my_file.xls")
# 讀取xlsx文件
my_data <- read_excel("my_file.xlsx")同樣也可以跟前面一樣交互式瀏覽本地文件導入,代碼如下:
my_data <- read_excel(file.choose())也可以指定讀取Excel中的sheet表格,一般默認讀取第一個表格。
# 通過指定sheet表名稱來讀取數據
my_data <- read_excel("my_file.xlsx", sheet = "data")
# 指定讀取名為data的sheet表格
# 通過指定sheet表的順序數字來讀取數據
my_data <- read_excel("my_file.xlsx", sheet = 2)
# 指定讀取第二個表格
3. 使用xlsx包讀取數據除了readxl包外,還可以使用xlsx包來讀取Excel文件。
install.packages("xlsx") # 安裝R包
library("xlsx") # 加載R包xlsx包中有兩個函數可以用來讀取xls/xlsx文件:read.xlsx()和read.xlsx2(),在讀取大樣本數據時,後者要比前者快。
read.xlsx(file, # 指定數據文件路徑
sheetIndex, # 指定讀取的sheet表格,可以用數字表示
header=TRUE) # 邏輯詞,是否將第一行作為列名
read.xlsx2(file, sheetIndex, header=TRUE) # 同上示例:
# 讀取xls文件,文件位於工作目錄下
my_data <- read.xlsx("my_file.xls")
# 讀取xlsx文件
my_data <- read.xlsx("my_file.xlsx")同樣也可以跟前面一樣交互式瀏覽本地文件導入,代碼如下:
# 數字1表示讀取文件中第一個sheet表格
my_data <- read.xlsx(file.choose(), 1)
參考資料http://www.sthda.com/english/wiki/reading-data-from-excel-files-xls-xlsx-into-r