三種方法高效讀取xls/xlsx格式文件

2021-02-20 R語言統計與繪圖

今天來學習下怎麼將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

相關焦點

  • R語言讀取xlsx文件
    關於R語言讀取Excel文件,比較麻煩,我從來都反對直接讀取xlsx文件,因為爬蟲數據時,一般保存的格式都是csv文件,或者直接保存到資料庫裡面
  • xlsx文件打不開怎麼辦?xlsx文件打不開的解決方法
    Excel打不開症狀五:雙擊打不開文件,只能先打開excel程序,然後在文件中打開XLS表格文件才可以打開該文件。  解決方法:請參考《Excel文件雙擊無法打不開解決方法》!  提示:上面給大家推薦了四種解決Excel表格打不開問題,大家可以分別嘗試一下。不保證一定可以幫助各位解決問題,但是根據本人多年使用辦公軟體經驗來看基本是可以地!
  • 利用pandas讀取格式不規範的Excel文件
    介紹pandas 很容易將Excel文件讀取為DataFrame,但是在現實中,Excel文件裡面的數據格式往往是不規範的
  • 用R語言讀取EXCEL文件的方法
    在工作中,我們得到的數據源一般是以Excel文件為多,偶有CSV文件或TXT文件等。
  • Excel中的xls、xlsx、xlsm混合文件,看我用Python如何統一處理......
    在Python中,有幾個常用的庫專門用來處理Excel文件,分別是xlrd、xlwt和openpyxl,簡單介紹一下:openpyxl可以讀數據和寫數據,但只能處理xlsx;如果待處理的文件,既有xls,又有xlsx時,我覺得還是將它們一併轉換為統一格式
  • Python讀寫EXCEL文件常用方法大全
    2 數據準備為了方便演示,我這裡新建了一個data.xls和data.xlsx文件,第一個工作表sheet1區域「A1:E5」的內容如下,用於測試讀寫excel的代碼:3 xlrd和xlwtxlrd是一個庫,用於從Excel文件中以.xls格式讀取數據和格式化信息xlwt是一個庫,用於將數據和格式化信息寫入較舊的Excel文件
  • Matlab—Excel數據的讀取
    >
  • 萬字長文記錄Python讀寫EXCEL文件常用方法大全
    和data.xlsx文件,第一個工作表sheet1區域「A1:E5」的內容如下,用於測試讀寫excel的代碼:3|0xlrd和xlwtxlrd是一個庫,用於從Excel文件中以.xls格式讀取數據和格式化信息xlwt是一個庫,用於將數據和格式化信息寫入較舊的Excel文件(例如:.xls)。
  • 如何從excel中讀取多個工作表
    解決思路:讀取excel文件,獲得所有的sheet名根據sheet名,再去讀取excel中的不同的worksheet##獲取sheet名列表import pandasas pdxls = pd.ExcelFile('data.xlsx')xls.sheet_names運行結果['莫幹·遙遠的山', '莫幹山青漫·一屋', '莫幹山山氧·開態', '莫幹山居圖', '莫幹山野奢', '莫幹山慕色', '
  • 用Python讀取Excel文件指南
    原作者丨Erik Marsja本文將重點闡述用Python如何讀取Excel文件(xlsx),重點是演示使用openpyxl模塊讀取xlsx類型的文件。首先,我們要看一些簡單的示例;然後,我們將學習讀取多個Excel文件。
  • 【Excel】文件打開慢、打不開、各人煩人提示怎麼辦?這裡都有解決方案
    但是有些專業背景應用就用不上上面所說的方法了,如商務標價對比表,這種只能夠根據情況拆表,但拆得多工作效率會降低還有一個,小小優化的方法▼把表格存為xlsb格式,xlsb格式大小是最小的,在主流配置的打開的速度不相差不大,但老配置打開速度卻明顯快些,但卻有一點限制。
  • 如何用Python讀寫Excel文件?最便捷的3種方式
    文件,主要內容如下,用於測試讀excel的代碼:方法一:利用xlrd和xlwt進行excel讀寫,這裡只能是xls類型excel首先,安裝的話,直接輸入命令"pip install xlrd"和"pip install xlwt"就行,如下:
  • R如何直接讀取Excel表格數據?
    還記得我第一次用ClustalX做序列Alinment時一直不出結果,折騰了一下午偶然發現出錯僅僅因為文件名是中文的。經過這次教訓以後,自己也養成了個習慣,不管是文件名還是表格內容絕不用中文,哪怕是用拼音表示。在《你可能需要一個功能強大一點的文本編輯器……》一文,已介紹過用Notepad++查看Excel中不容易發現的格式錯誤。
  • pandas.read_excel()讀取excel文件時提示需要指定engine參數的問題
    pandas.read_excel()函數中有很多參數,除了可包含路徑的文件名外,其他參數均有默認值。
  • Matlab導入excel數據方法及常見報錯處理
    例子:創建一個名為 myExample.xlsx 的 Excel 文件。 ③ num = xlsread(filename,xlRange) 從工作簿的第一個工作表的指定範圍內讀取數據。使用 Excel 範圍語法,例如 'A1:C3'。例子:從上一示例的 Excel 文件中讀取特定範圍的數據。
  • 如何利用python的xlrd讀取excel文件?
    Python讀取excel文件有很多方法,這裡主要介紹一下xlrd包的使用辦法。
  • (實用篇)PHPExcel讀取Excel文件的實現代碼
    以下是文章分享1群,由於群人數已超過100,不能掃碼進群,這個任務呢,就由小篇來拉你們進群了,掃描下面二維碼,加小篇好友~用PHPExcel讀取Excel 2007 或者Excel2003文件,需要的朋友,可以參考下。
  • 這5個Excel問題,將表格另存為xlsx格式就解決了
    其實,在Excel中,也有一個簡單粗暴又好用的方法:另存為xlsx格式。可以解決非常多的問題,我知道你不信,那就來一起看看。1.在用VLOOKUP函數跨工作簿查找的時候,提示無效引用,怎麼回事?仔細觀察,你會發現,表格為兼容模式,也就是xls格式。
  • 如何將多個Excel文件瞬間合併成一個Sheet頁
    2.做調查時,設計好填報模板,填報了幾百甚至上千份Excel文件,而且這些文件中,excel版本又不相同,既有「.xls」,也有「.xlsx」,如何瞬間合併在一個Sheet頁中呢?二、方法一:Excel宏(零基礎簡單五步搞定)談到宏,很多人覺得很複雜,莫急,你無需深究原理,按以下操作即可:1.把要合併的文件放在同一個文件夾中;2.在文件夾中新建一個Excel文件,如下圖《新建 Microsoft Office Excel 工作表.xlsx
  • R|批量循環處理同一格式文件-csv,txt,excel
    在一個文件夾下有很多欄位一致,格式統一的數據文件(csv,txt