在數(shù)據(jù)分析的過(guò)程中,第一步就是讀取數(shù)據(jù)。
通常我們遇到的數(shù)據(jù)是csv格式或者txt格式的數(shù)據(jù),這時(shí)我們使用系統(tǒng)自帶的read.csv()
與read.table()
就可對(duì)這些格式的數(shù)據(jù)進(jìn)行讀取,只是讀取時(shí)需注意編碼格式。對(duì)于大型csv格式的數(shù)據(jù)(當(dāng)然小數(shù)據(jù)也可以),可以使用data.table
包中的fread()
進(jìn)行讀取可以極大地提升讀取速度。
但當(dāng)遇到了Excel表生成的文件,讀取起來(lái)相對(duì)就沒(méi)有那么友好。之前的做法是簡(jiǎn)單粗暴地直接將我們的xls或xlsx文件利用Excel轉(zhuǎn)化為csv文件后再進(jìn)行讀取,亦或者直接就用Python使用pandas庫(kù)進(jìn)行處理,然后就在Python中進(jìn)行分析。
就是由于之前幾次碰壁,使用網(wǎng)上推薦的一些包來(lái)進(jìn)行讀取,但都以失敗告終。不過(guò)這次還是決定解決這個(gè)“頑疾”,對(duì)xls與xlsx這兩種文件用R進(jìn)行讀取。
這幾種方法主要參考:Read Excel files from R
1. ROOBC
這個(gè)包中有函數(shù)可以讀取xlsx
格式的文件,但對(duì)于現(xiàn)在的我們而言,絕大多數(shù)人的電腦都不能使用這個(gè)包,因?yàn)槠渲荒苡糜?2位系統(tǒng)的Windows,所以這里不對(duì)這個(gè)包進(jìn)行贅述。
2. xlsReadWrite
只能從GitHub中獲得,CRAN上還沒(méi)有,也不進(jìn)行過(guò)多的贅述。
3. XLConnect
要依賴(lài)java,并且對(duì)于大數(shù)據(jù)情況讀取非常慢。但實(shí)際上自己使用的時(shí)候,安裝了java后,還是沒(méi)法使用這個(gè)包。可能是某些步驟設(shè)置出現(xiàn)了問(wèn)題。
若有童鞋對(duì)前面的三個(gè)包非常感興趣,其詳細(xì)的用法可以參考前面的參考網(wǎng)址。
4. xlsx
這個(gè)包是目前用的最多,也是R中可以說(shuō)最好用的讀取Excel文件的利器。
下面專(zhuān)門(mén)對(duì)其進(jìn)行介紹。首先我們先說(shuō)明這個(gè)包的依賴(lài)文件,不僅僅只是依賴(lài)R中的一些包,而是需要單獨(dú)安裝java。
1)裝Java
安裝鏈接:https://www.java.com/zh_CN/download/
我們按照指引選擇默認(rèn)路徑安裝,安裝完成后,在C:\Program Files
下出現(xiàn)了Java文件,說(shuō)明安裝成功。(注:有些地方說(shuō)需要將Java文件添加到全局變量中,后面的xlsx
包才能調(diào)取成功,但其實(shí)在這兩天的實(shí)際安裝中發(fā)現(xiàn),自己的電腦并不需要,可能得看臉。)
2)裝xlsx
安裝xlsx
其實(shí)沒(méi)什么好說(shuō)的,就正常安裝,然后它會(huì)自動(dòng)將所需要的rjava
等依賴(lài)庫(kù),最后成功安裝xlsx
庫(kù)。
3)實(shí)際使用
最后我們就能直接使用啦,下面來(lái)講一下其代碼格式:
1
2
|
library(xlsx) dat <- read.xlsx( "data.xlsx" , sheetName = "Sheet1" , encoding = 'UTF-8' ) |
一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)讀取如上所示,下面將幾個(gè)常用的參數(shù):
"data.xlsx"
:表示讀取數(shù)據(jù)的名稱(chēng)。
sheetName
:表示讀取表中表的名稱(chēng),通常第一個(gè)就是Sheet1
。
encoding
:這個(gè)在讀取中文數(shù)據(jù)的時(shí)候是一定要加上的,不然讀取數(shù)據(jù)會(huì)出現(xiàn)亂碼。
sheetIndex
:表示讀取文件中第幾個(gè)表,sheetIndex = 1
表示讀取文件中第一個(gè)表。
需要特別注意:當(dāng)文件中我們的表明為中文字時(shí),不能使用類(lèi)似sheetName = "表1"進(jìn)行讀取,即使加上encoding = 'UTF-8'
也會(huì)出現(xiàn)讀取錯(cuò)誤,這時(shí)就需要使用sheetIndex
來(lái)進(jìn)行讀取。
以上就是R語(yǔ)言讀取xls與xlsx格式文件過(guò)程的詳細(xì)內(nèi)容,更多關(guān)于R讀取文件的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!
原文鏈接:https://kanny.blog.csdn.net/article/details/81911295