工作中做數(shù)據(jù)分析的時候,偶爾會需要將一些 Excel 文件導入到R中使用,每次都轉(zhuǎn)換成 csv 文件也不現(xiàn)實,而且不管是保存成 csv 還是 txt 文件,都只能保存當前活動工作表。
這個時候,熟悉如何使用R語言讀取 Excel 文件就顯得很重要啦,不過還是建議數(shù)據(jù)交換使用 csv 文件,具有通用性和準確性。
1、readxl 包
又是 Hadley Wickham 大神的杰作!
主要包含read_excel()\read_xls()\read_xlsx() \ excel_sheets() 三個函數(shù),其中:
read_excel():讀取 xls 和 xlsx 文件;read_excel() 調(diào)用,以根據(jù)文件擴展名和文件本身的順序 excel_format() 確定 path 是 xls 還是 xlsx。如果您更了解并希望避免此類猜測,請直接使用 read_xls() 和 read_xlsx()。
excel_sheets():列出Excel電子表格中的所有工作表;
使用示例:
> #加載包
> library(readxl)
> #讀取Excel文件第一個sheet數(shù)據(jù)
> data <- read_excel('/Users/user/Desktop/慶余年人物.xlsx',sheet = 1)
> #讀取Excel文件內(nèi)sheetname='大宗師'的數(shù)據(jù)
> data <- read_excel('/Users/user/Desktop/慶余年人物.xlsx',sheet = '大宗師')
> #讀取Excel文件內(nèi)前3行數(shù)據(jù)
> data <- read_excel('/Users/user/Desktop/慶余年人物.xlsx',n_max = 3)
> #讀取Excel文件內(nèi)A1:B3塊數(shù)據(jù)
> data <- read_excel('/Users/user/Desktop/慶余年人物.xlsx',sheet = 1,range = 'A1:B3')
> #讀取Excel文件內(nèi)A:B列數(shù)據(jù)
> data <- read_excel('/Users/user/Desktop/慶余年人物.xlsx',sheet = 1,range = cell_cols("A:B"))
> #列出Excel文件中的所有工作表;
> excel_sheets('/Users/user/Desktop/慶余年人物.xlsx')
[1] "人物" "大宗師"
2、openxlsx 包
提示:僅使用于 .xlsx 文件?。?!
提示:僅使用于 .xlsx 文件?。?!
提示:僅使用于 .xlsx 文件?。。?/strong>
重要的話說三遍?。。?/strong>
重要的話說三遍?。?!
重要的話說三遍!??!
使用示例:
# 加載包
library(openxlsx)
# 默認讀取sheet1的數(shù)據(jù)
data <- read.xlsx('/Users/user/Desktop/慶余年人物.xlsx')
# 讀取Excel文件內(nèi)sheetname='大宗師'的數(shù)據(jù)
data <- read.xlsx('/Users/user/Desktop/慶余年人物.xlsx',sheet = '大宗師')
參數(shù)設置同 readxl 大同小異,具體可以使用 help(openxlsx) 函數(shù)參看參數(shù)設置。
help(openxlsx)
read.xlsx(xlsxFile, sheet = 1, startRow = 1, colNames = TRUE,
rowNames = FALSE, detectDates = FALSE, skipEmptyRows = TRUE,
skipEmptyCols = TRUE, rows = NULL, cols = NULL, check.names = FALSE,
namedRegion = NULL, na.strings = "NA", fillMergedCells = FALSE)
網(wǎng)上還有很多方法去讀取 Excel 文件,例如:xlsx 包、 ROBDC 包、復制剪切板等,但相比較實用性和簡潔性來說,我覺得 readxl 包和 openxlsx 包都是我目前工作中的首選,畢竟,高效、簡潔才是王道。
通過三遍文章,把工作中R語言獲取數(shù)據(jù)的幾個情形都梳理了一遍,希望對大家有幫助,因為不管是數(shù)據(jù)分析還是數(shù)據(jù)建模,數(shù)據(jù)都是最重要的,希望大家在數(shù)據(jù)工作中,都能夠順利。
歷史系列文章見下:
R語言獲取數(shù)據(jù)1:從文本文件獲取數(shù)據(jù)
R語言獲取數(shù)據(jù)2:連接數(shù)據(jù)庫