R語言讀取Excel的神器——openxlsx

作為非程序猿的各位同志們,可能最擅長的數(shù)據(jù)整理軟件或者統(tǒng)計軟件就是——嗯,沒有錯,它就是集萬千寵愛于一身的E~~~X~~~O。


咳咳咳,好了。隆重推出我們的主角——Excel

事實上,Excel是個super強(qiáng)大的軟件。基本上用它已經(jīng)能完成大量的統(tǒng)計分析了。
For example
各類數(shù)理統(tǒng)計

線性規(guī)劃(LINGO表示欲哭無淚,你丫的搶我飯碗)。



當(dāng)然,很久很久之前有這門本神書:
陳彥光. 基于Excel的地理數(shù)據(jù)分析[M]. 科學(xué)出版社, 2010.



當(dāng)然,作為新時代的研究生,我們怎么能僅用Excel來完成一切的科研任務(wù)呢?用老師的話說,你們用Excel做的圖,人家審稿都嫌low。這個時候R就登場了。
關(guān)于R的簡介我就不提了。歡迎各種度娘,扯了這么久的淡。終于要進(jìn)入正題了。

今天講的是R語言的第一步,讀數(shù)據(jù)——讀Excel的數(shù)據(jù)。
以下有三種方法:
1.將Excel轉(zhuǎn)存為csv格式文件,讀csv文件。

a<-read.csv("exercise1.csv",header = T)

2.用RODBC包讀取Excel。

ab<-odbcConnectExcel2007("exercise1.xls")#連接excel,32位系統(tǒng)使用odbcConnectExcel函數(shù)
sqlTables(ab)

根據(jù)需求讀取對應(yīng)的sheet1

a<-sqlFetch(ab,"Sheet1$")
odbcClose(ab)#關(guān)閉句柄,此句是必須。

3.用openxlsx包讀取Excel

 a<-read.xlsx("exercise1.xlsx",sheet=1)#文件名+sheet的序號,簡單粗暴

綜合來看,openxlsx的方法簡單粗暴,而且經(jīng)多名骨灰級玩家證明,罕有bug出現(xiàn)。乃R語言和Excel讀取的絕對神器。不過筆者也發(fā)現(xiàn),openxlsx包僅適用于.xlsx格式文件。前期的xls格式文件可能還需要前兩種方法來讀取。除了以上三種方法,還有類似的包如xlsx、readxl。此處依舊強(qiáng)推神器openxlsx。首先,.xlsx文件存儲行數(shù)大大提升,從65536行數(shù)據(jù)提升到了104萬條數(shù)據(jù)。其次,它十分便捷,函數(shù)所需參數(shù)較少。當(dāng)然最后的最后,它可能需要的R的版本比較的新。下一篇的預(yù)告:如何通過一行代碼升級R。
最后貼出全文的代碼。

#設(shè)置工作路徑
setwd("F:/R/applicationstatics")

#第一種方法:讀取csv
a<-read.csv("exercise1.csv",header = T)

#第二種方法:RODBC包
#安裝載入RODBC包,如果已安裝,請?zhí)^第一句語句
install.packages(RODBC)
library(RODBC)

ab<-odbcConnectExcel2007("exercise1.xls")#連接excel,32位系統(tǒng)使用odbcConnectExcel函數(shù)
sqlTables(ab)
a<-sqlFetch(ab,"Sheet1$")
odbcClose(ab)#關(guān)閉句柄,此句是必須。

#第三種方法:openxlsx
install.packages(openxlsx)
library(openxlsx)
a<-read.xlsx("exercise1.xlsx",sheet=1)#文件名+sheet的序號,簡單粗暴

當(dāng)然文末小福利:《基于Excel的地理數(shù)據(jù)分析》的電子版。需要的童鞋可以評論并留下郵箱。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容