1. 程式人生 > >R語言讀取Excel的神器——openxlsx

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的地理資料分析》的電子版。需要的童鞋可以評論並留下郵箱。