張佳進(jìn), 陳立暢,陳克平,唐君君
(1.云南農(nóng)業(yè)大學(xué) 基礎(chǔ)與信息工程學(xué)院,云南 昆明 650201;2.云南農(nóng)業(yè)大學(xué) 工程技術(shù)學(xué)院,云南 昆明 650201)
基于R語言的農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件的設(shè)計與實(shí)現(xiàn)
張佳進(jìn)1, 陳立暢2,陳克平1,唐君君1
(1.云南農(nóng)業(yè)大學(xué) 基礎(chǔ)與信息工程學(xué)院,云南 昆明 650201;2.云南農(nóng)業(yè)大學(xué) 工程技術(shù)學(xué)院,云南 昆明 650201)
文中針對國內(nèi)農(nóng)業(yè)試驗(yàn)統(tǒng)計分析軟件相對缺乏的現(xiàn)狀,提出基于R統(tǒng)計語言和JAVA構(gòu)建農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件開發(fā)平臺的設(shè)計方案。實(shí)現(xiàn)了R統(tǒng)計語言和JAVA的集成與融合,可跨平臺運(yùn)行在windows和Linux操作系統(tǒng)的農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件。該軟件具有開源免費(fèi),用戶界面友好,簡單易用,系統(tǒng)擴(kuò)展能力強(qiáng)等特點(diǎn),非常適合應(yīng)用于農(nóng)業(yè)科研和教學(xué)研究中。
農(nóng)業(yè)試驗(yàn)統(tǒng)計;R語言;Eclipse;StatET
在進(jìn)行農(nóng)業(yè)科學(xué)試驗(yàn)的過程中,試驗(yàn)所獲得的數(shù)據(jù)往往具有龐大、復(fù)雜和凌亂等特點(diǎn),只有通過正確的處理和統(tǒng)計分析,才能發(fā)現(xiàn)其內(nèi)在規(guī)律。統(tǒng)計分析軟件已經(jīng)成為試驗(yàn)數(shù)據(jù)處理與分析的必備工具,然而目前廣泛使用的商業(yè)統(tǒng)計軟件例如SAS、SPSS等,對農(nóng)業(yè)試驗(yàn)設(shè)計及統(tǒng)計分析方面的內(nèi)容,或涉及較少,或側(cè)重點(diǎn)不同,這往往不太適合農(nóng)業(yè)田間試驗(yàn)設(shè)計與統(tǒng)計分析。另外國外的很多商業(yè)統(tǒng)計軟件存在用戶界面不夠友好,需要專業(yè)的統(tǒng)計知識,學(xué)習(xí)難度大,使用不方便等問題。由于國內(nèi)試驗(yàn)統(tǒng)計軟件的相對缺乏,使得農(nóng)業(yè)試驗(yàn)統(tǒng)計工作的應(yīng)用和發(fā)展在一定程度上受到了影響。
R軟件是一款集成了數(shù)據(jù)操作、統(tǒng)計分析和可視化功能的優(yōu)秀的開源軟件,自1993年誕生以來,深受統(tǒng)計學(xué)家和計量愛好者的喜愛,被國外大量學(xué)術(shù)與科研機(jī)構(gòu)采用,其應(yīng)用范圍涵蓋了計量經(jīng)濟(jì)學(xué)、實(shí)證金融學(xué)、空間統(tǒng)計學(xué)、統(tǒng)計遺傳學(xué)和生物信息學(xué)等諸多領(lǐng)域,現(xiàn)已成為國際主流統(tǒng)計軟件之一。
相對于商業(yè)統(tǒng)計軟件而言,R的主要特色在于: 1)R語言具有自由、免費(fèi)開放源代碼的特點(diǎn),用戶既可以查看分析統(tǒng)計函數(shù)的代碼,學(xué)習(xí)如何實(shí)現(xiàn)相關(guān)統(tǒng)計功能,也可以在原函數(shù)的基礎(chǔ)上進(jìn)行修改,實(shí)現(xiàn)個性化的統(tǒng)計算法; 2) R語言是面向?qū)ο蟮慕y(tǒng)計編程語言,具有強(qiáng)大的統(tǒng)計計算與圖形展示功能; 3) R軟件體積小,更新速度快; 4) R的擴(kuò)展性強(qiáng),來自世界各地開源社區(qū)的研究者為其提供了豐富的統(tǒng)計軟件包[1]。
目前國內(nèi)R語言用戶還不是很多,大部分人主要采用SPSS或SAS等商業(yè)統(tǒng)計軟件,只有少數(shù)國內(nèi)高校使用R語言進(jìn)行統(tǒng)計教學(xué)。不過,近年來國內(nèi)已有不少專家學(xué)者開始關(guān)注、推廣R語言而努力[2-4]。
另外,對于試驗(yàn)設(shè)計與現(xiàn)代應(yīng)用生物統(tǒng)計方法領(lǐng)域,R的CRAN網(wǎng)站上提供了大量相關(guān)的軟件工具包,如著名的AlgDesign、Crossdes、Conf.design、DoE.base、FrF2 等, 這 為農(nóng)業(yè)試驗(yàn)統(tǒng)計的教學(xué)與科研提供了便利。
當(dāng)然R也存在著諸多需要完善的地方,例如在Windows時代,用戶很難適應(yīng)R的命令交互模式,用戶界面簡陋,缺乏人性化設(shè)計,初學(xué)者需要花費(fèi)較多的時間才能熟練應(yīng)用R統(tǒng)計語言。其次,R語言的編程調(diào)試環(huán)境較差,集成度較低,開發(fā)、調(diào)試繁瑣,用R語言直接進(jìn)行統(tǒng)計分析,對初學(xué)者來說難度較大。
文中提出了集成Java開發(fā)環(huán)境、R統(tǒng)計軟件包、rJava接口軟件包[5-6]、Eclipse編輯器、插件StatET[7]的新型農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件設(shè)計方案,該軟件采用視窗交互界面,用戶界面友好,簡單易用,能快速構(gòu)建出基于R語言的農(nóng)業(yè)試驗(yàn)統(tǒng)計分析軟件(當(dāng)然也支持其他各類統(tǒng)計分析),系統(tǒng)擴(kuò)展性好,可無縫運(yùn)行在Windows和Linux操作系統(tǒng),能有效地實(shí)現(xiàn)軟件復(fù)用及資源共享。
農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件主要由Java開發(fā)運(yùn)行環(huán)境、R統(tǒng)計軟件包、rJava接口軟件包、Eclipse編輯器、插件StatET組成,其系統(tǒng)邏輯結(jié)構(gòu)如圖1所示。圖2為農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件集成開發(fā)環(huán)境操作界面。
圖1 農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件系統(tǒng)結(jié)構(gòu)Fig.1 Schematic diagram of agricultural experimental and statistical software
圖2 農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件集成開發(fā)環(huán)境操作界面Fig.2 Interface chart of agricultural experimental and statistical software
1.2.1 Eclipse
Eclipse是著名的跨平臺的免費(fèi)開源集成開發(fā)環(huán)境(IDE)。Eclipse本身只是一個框架平臺,但眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性,因此許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。另外Eclipse是一個很好的文本編輯器,支持自動縮進(jìn),語法高亮顯示等功能;通過Eclipse,可以非常方便地維護(hù)腳本語言例如R語言的腳本文件,通過使用相應(yīng)插件,可以量身定制個性化的編輯環(huán)境。
1.2.2 StatET
StatET是Eclipse的插件,具有如下特點(diǎn):免費(fèi)開源;支持在Eclipse平臺上(通過將代碼發(fā)送到R)運(yùn)行R程序;支持語法高亮顯示;支持使用R代碼模板;支持創(chuàng)建R的文檔文件(*.Rd);可以從Eclipse運(yùn)行R命令。
1.2.3 rJava
rJava軟件包主要作為R語言與Java的接口,實(shí)現(xiàn)R語言與Java的互動。既可以在R中調(diào)用Java代碼,也可以在Java中運(yùn)行R語言程序。
本文以Windows操作系統(tǒng)為例,介紹試驗(yàn)統(tǒng)計軟件集成開發(fā)環(huán)境的安裝及調(diào)試運(yùn)行方法。
圖3 農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件集成開發(fā)環(huán)境的構(gòu)建步驟Fig.3 Design steps of IDE for agricultural experimental and statistical software
第1步: 從網(wǎng)絡(luò)下載安裝R軟件后,在R控制臺中執(zhí)行命令 install.packages("rJava"),安裝 rJava 包。
第2步:因?yàn)镋clipse是Java應(yīng)用程序,所以需要從Java官方網(wǎng)站下載并安裝JRE(Java Runtime Environment)。
第3步:下載Eclipse后,直接解壓到合適的路徑即可運(yùn)行,無需安裝。
第4步: 安裝StatET插件。StatET主要通過Eclipse按照如下步驟進(jìn)行在線安裝。
在Eclipse中依次選擇“Help”->“Install New Software”,在彈出的對話框中將“http://download.walware.de/eclipse-3.8”輸入到更新源中并點(diǎn)擊“Add”按鈕后,按相應(yīng)提示依次安裝StatET。
啟動Eclipse后,依次選擇菜單欄中的“Windows”,“Open perspective”,“Other”,在彈出的對話框中選中“StatET”并單擊“確定”,就打開激活了StatET 。
3.2.1 新建一個工程
在Eclipse軟件中依次選擇菜單欄中的“File”,“New”,“RProject”,在相應(yīng)對話框填好工程名和工作路徑后,單擊“Finish”按鈕。新建的工程可以在“Project Explorer”視圖中看到。例如在圖4中,建立了包含兩個分別名為“Monte Carlo優(yōu)化設(shè)計”、“全因子試驗(yàn)設(shè)計”R語言腳本的工程。
3.2.2 向工程添加文件
右鍵單擊“Project Explorer”中的工程名,依次選擇“New”,“R-Script file”,打開新建R的腳本文件對話框輸入文件名后即可生成R語言腳本文件。
圖4 新建R工程示例Fig.4 Demo of new R project
前面編輯的R程序現(xiàn)在還不能運(yùn)行。還需要對StatET做相應(yīng)配置才行。在Eclipse中選擇菜單欄中的“Windows”,“Preferences”,打開配置窗口,展開StatET,定位到“R Environments”,點(diǎn)擊右側(cè)的按鈕“Add”,將計算機(jī)上安裝的R相關(guān)路徑添加進(jìn)去,最后關(guān)閉該對話框,如圖5所示。
圖5 StatET插件的交互環(huán)境配置Fig.5 Configuration of interaction environment toward StatET component
在Eclipse菜單欄中選擇“Run”->“Run Configurations”,在Main標(biāo)簽中按圖6進(jìn)行配置。最后在工具欄中打開配置好的R控制臺,運(yùn)行“Run Configurations”,打開R控制臺。
圖6 StatET插件的運(yùn)行環(huán)境設(shè)置Fig.6 Configuration of run time environment toward StatET component
接下來就可以將前面在Eclipse中建立的R語言腳本Monte Carlo優(yōu)化設(shè)計.R提交給R運(yùn)行。將焦點(diǎn)設(shè)置到工程管理器中的“Monte Carlo優(yōu)化設(shè)計.R”文件上,這時工具欄上就會出現(xiàn)R的運(yùn)行命令按鈕,可以選擇所需要的方式來運(yùn)行R語言代碼。圖7為Monte Carlo優(yōu)化設(shè)計在R控制臺中輸出的執(zhí)行結(jié)果。
圖7 Eclipse中R語言腳本運(yùn)行示例Fig.7 Demo of running result from R script in Eclipse
通過以上步驟,就可以在Eclipse集成運(yùn)行R代碼,系統(tǒng)用戶界面友好,簡單易用,方便了R語言的學(xué)習(xí)與開發(fā)。
文中針對農(nóng)業(yè)試驗(yàn)統(tǒng)計分析軟件相對缺乏的現(xiàn)狀,提出了集成Java運(yùn)行環(huán)境、R統(tǒng)計軟件包、rJava接口軟件包、Eclipse編輯器、插件StatET的新型農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件設(shè)計方案,該軟件平臺采用視窗交互界面,用戶界面友好,簡單易用,能快速構(gòu)建出基于R語言的個性化農(nóng)業(yè)試驗(yàn)統(tǒng)計分析軟件,系統(tǒng)擴(kuò)展性好,可無縫運(yùn)行在Windows和Linux操作系統(tǒng),能有效地實(shí)現(xiàn)軟件復(fù)用及資源共享,非常適合應(yīng)用于農(nóng)業(yè)科研與教學(xué)研究中。文中對農(nóng)業(yè)試驗(yàn)統(tǒng)計軟件的多元化選擇與個性化定制,進(jìn)行了有益的嘗試。
[1]Lumley T. Package 'survey'.[EB/OL]. [2014-04-06].http://faculty.washington.edu/tlumley/survey/.
[2]王斌會.多元統(tǒng)計分析及R語言建模[M].廣州:暨南大學(xué)出版社,2010.
[3]薛毅,陳立萍.統(tǒng)計建模與R軟件[M].北京:清華大學(xué)出版社,2007.
[4]湯銀才.R語言與統(tǒng)計分析[M].北京:高等教育出版社,2008.
[5]Urbanek S. rJava: Low-Level R to Java Interface. [EB/OL].[2014-04-01]. http://www.RForge.net/rJava/.
[6] 李祥林,妙旭華,賈桂霞. 基于UML的重金屬污染預(yù)警系統(tǒng)的分析與設(shè)計[J]. 工業(yè)儀表與自動化裝置,2012(5):9.
LI Xiang-lin,MIAO Xu-hua,JIA Gui-xia. Analysis and design of the warning system for pollution of heavy metals based on UML[J]. Industrial Instrumentation & Automation,2012(5):9.
[7] Longhow Lam. A guide to Eclipse and the R plug-in StatET.[EB/OL]. [2014-04-03]. www.splusbook.com.
Design and implement of agricultural experimental and statistical software based on R language
ZHANG Jia-jin1, CHEN Li-chang2, CHEN Ke-ping1, TANG Jun-jun1
(1.School of Science and Information Engineering ,Yunnan Agriculture University ,Kunmin 650201,China ;2.School of Engineering ,Yunnan Agriculture University, Kunmin 650201,China)
Due to relative lack of agricultural Experimental and Statistical software in China, this paper puts forward a solution which integrates R language and Java to develop a novel agricultural Experimental and Statistical software is open source, user-friendly interface, easy to use and strong expansibility. Simultaneously, this software can run on Windows or Linux operation system respectively. This solution really can meet the research and education of agricultural experiment and statistic.
agricultural experiment and statistic;R language;Eclipse;StatET
TN92
A
1674-6236(2014)14-0010-03
2014-04-09 稿件編號:201404070
云南省教育廳科學(xué)研究基金項目(09C0285)
張佳進(jìn)(1976—),男,云南景東人,碩士,講師。研究方向:數(shù)據(jù)挖掘、農(nóng)業(yè)信息化。