R語言讀取Excel的神器——openxlsx
作為非程式猿的各位同志們,可能最擅長的資料整理軟體或者統計軟體就是——嗯,沒有錯,它就是集萬千寵愛於一身的E~~~~X~~~~O。
咳咳咳,好了。隆重推出我們的主角——Excel
事實上,Excel是個super強大的軟體。基本上用它已經能完成大量的統計分析了。
For example
各類數理統計
線性規劃(LINGO表示欲哭無淚,你丫的搶我飯碗)。
當然,很久很久之前有這門本神書:
陳彥光. 基於Excel的地理資料分析[M]. 科學出版社, 2010.
當然,作為新時代的研究生,我們怎麼能僅用Excel來完成一切的科研任務呢?用老師的話說,你們用Excel做的圖,人家審稿都嫌low。這個時候R就登場了。
關於R的簡介我就不提了。歡迎各種度娘,扯了這麼久的淡。終於要進入正題了。
今天講的是R語言的第一步,讀資料——讀Excel的資料。
以下有三種方法:
1.將Excel轉存為csv格式檔案,讀csv檔案。
a<-read.csv("exercise1.csv",header = T)
2.用RODBC包讀取Excel。
ab<-odbcConnectExcel2007("exercise1.xls")#連線excel,32位系統使用odbcConnectExcel函式
sqlTables(ab)
根據需求讀取對應的sheet1
a<-sqlFetch(ab,"Sheet1$")
odbcClose(ab)#關閉控制代碼,此句是必須。
3.用openxlsx包讀取Excel
a<-read.xlsx("exercise1.xlsx",sheet=1)#檔名+sheet的序號,簡單粗暴
綜合來看,openxlsx的方法簡單粗暴,而且經多名骨灰級玩家證明,罕有bug出現。乃R語言和Excel讀取的絕對神器。不過筆者也發現,openxlsx包僅適用於.xlsx格式檔案。前期的xls格式檔案可能還需要前兩種方法來讀取。除了以上三種方法,還有類似的包如xlsx、readxl。此處依舊強推神器openxlsx。首先,.xlsx檔案儲存行數大大提升,從65536行資料提升到了104萬條資料。其次,它十分便捷,函式所需引數較少。當然最後的最後,它可能需要的R的版本比較的新。下一篇的預告:如何通過一行程式碼升級R。
最後貼出全文的程式碼。
#設定工作路徑 setwd("F:/R/applicationstatics") #第一種方法:讀取csv a<-read.csv("exercise1.csv",header = T) #第二種方法:RODBC包 #安裝載入RODBC包,如果已安裝,請跳過第一句語句 install.packages(RODBC) library(RODBC) ab<-odbcConnectExcel2007("exercise1.xls")#連線excel,32位系統使用odbcConnectExcel函式 sqlTables(ab) a<-sqlFetch(ab,"Sheet1$") odbcClose(ab)#關閉控制代碼,此句是必須。 #第三種方法:openxlsx install.packages(openxlsx) library(openxlsx) a<-read.xlsx("exercise1.xlsx",sheet=1)#檔名+sheet的序號,簡單粗暴
當然文末小福利:《基於Excel的地理資料分析》的電子版。需要的童鞋可以評論並留下郵箱。