R語言及其擴(kuò)展的開發(fā)是怎樣的,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括弋陽網(wǎng)站建設(shè)、弋陽網(wǎng)站制作、弋陽網(wǎng)頁制作以及弋陽網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,弋陽網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到弋陽省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
R是一門主要用于統(tǒng)計(jì)分析、繪圖的語言和環(huán)境,是S語言的一種實(shí)現(xiàn),但R的語法卻是來自Scheme,是一種面向?qū)ο蟆⒅С址瓷涞暮瘮?shù)式腳本語言。
R本來是由來自新西蘭奧克蘭大學(xué)的Ross Ihaka和Robert Gentleman開發(fā),隨即成為GNU的項(xiàng)目之一,現(xiàn)在由R開發(fā)核心團(tuán)隊(duì)''負(fù)責(zé)開發(fā)。R現(xiàn)在支持多種平臺,包括GNU/Linux、FreeBSD、Windows和MacOS。
與其它商業(yè)統(tǒng)計(jì)軟件不同,R主要的用戶交互接口是R解析器。用戶可以與R如同與shell一般靈活交互,也可以通過腳本向R提交作業(yè)。R提供 libR.so共享對象,開發(fā)者可以設(shè)計(jì)GUI前端并與之連接,這樣既能夠提供R解析器接口又能提供豐富的菜單功能和其它作業(yè)方式。
在*nix上,vim和(x)emacs是著名的兩大編輯器,相應(yīng)地,開發(fā)者提供了R的交互支持:
ESS (Emacs Speaks Statistics)
Vim-r
作為KDE桌面的原生程序,RKWard提供了良好的IDE體驗(yàn)!
這里我們推薦讀者參考R的官方參考手冊。
為什么要使用R?撇開R是自由軟件不說,還有以下原因:
R逐漸成為統(tǒng)計(jì)軟件的事實(shí)標(biāo)準(zhǔn),在很多方面已經(jīng)趕上甚至超越SAS和SPSS等商業(yè)軟件。
R的語法簡答而清晰
R的效率很高(主要取決于BLAS的實(shí)現(xiàn))
CRAN有豐富的擴(kuò)展包
除了原生的C接口,R還有良好的語言綁定,如C++,Java,方便用戶設(shè)計(jì)自己的計(jì)算敏感的程序
R支持OpenMP和OpenMPI等并行基礎(chǔ),適合計(jì)算敏感的場合
在上文提及了R有良好的語言綁定,其中擴(kuò)展包Rcpp方便用戶使用C++來開發(fā)擴(kuò)展。我們使用Rcpp開發(fā)了兩個實(shí)驗(yàn)性的項(xiàng)目RcppKmeans和RcppNaiveBayes,用于數(shù)據(jù)挖掘的研究。
顯然,我們需要安裝Rcpp,注意確保GCC和R的開發(fā)環(huán)境是完備的:
install.packages("Rcpp")
轉(zhuǎn)移到你的工作目錄
library(Rcpp) Rcpp.package.skeleton("MyProjectName")
OK! MyProjectName的骨架建好了,開始寫代碼!等等,建議按照目錄里的Read-and-delete-me的指示走一遍。
為一簡單的用于文本的kmeans聚類器,通過應(yīng)用OpenMP技術(shù),在多核平臺上利用并行帶來的優(yōu)勢。
git clone git://github.com/ucweb/RcppKmeans.git R CMD INSTALL RcppKmeans
1 library(RcppKmeans) 2 # 9 個點(diǎn) 3 s <- list( 4 c("a", "a", "b", "b" ), 5 c("b", "b", "a", "c"), 6 c("e", "e", "f", "f"), 7 c("t", "t", "f", "f"), 8 c("s", "t", "h", "f"), 9 c("s", "t", "h", "f"), 10 c("s", "t", "h", "f"), 11 c("s", "t", "h", "f"), 12 c("s", "h", "t", "f")) 13 Kmeans(s,4L,1e3L,0.25)
輸出:
$clusters $clusters[[1]] [1] 7 4 5 6 8 $clusters[[2]] [1] 1 0 $clusters[[3]] [1] 2 $clusters[[4]] [1] 3 $iterations [1] 2 $divergent integer(0)
輸出結(jié)果說明:
c("a", "a", "b", "b" )和 c("b", "b", "a", "c")被歸入第二個聚類,c("e", "e", "f", "f")和c("t", "t", "f", "f")被孤立,而剩余的則歸入第一個聚類。
為一簡單的用于文本的分類器,本身不應(yīng)用并行技術(shù),但提供的接口可以與Rmpi一同使用,從而實(shí)現(xiàn)并行處理。
git clone git://github.com/ucweb/RcppNaiveBayes.git R CMD INSTALL RcppNaiveBayes
1 library(RcppNaiveBayes) 2 3 a <- list(c("A", "B", "B", "D", "A", "Z"), 4 c("C", "B", "C", "Z", "H")) 5 b <- list(c("A", "F", "Y", "F", "W"), 6 c("I", "A", "G", "F", "P", "D"), 7 c("G", "A", "N", "P")) 8 d <- list(c("Y", "D", "P"), 9 c("H", "H"), 10 c("Z", "Z")) 11 m <- NaiveBayesTrain(list(a,b)) # 訓(xùn)練兩個類別 12 NaiveBayesPredict(m, d)
輸出:
$scores $scores[[1]] [1] 0.1000000 0.2666667 $scores[[2]] [1] 0.40000000 0.06666667 $scores[[3]] [1] 0.90000000 0.06666667 $predicted [1] 2 1 1 attr(,"class") [1] "RcppNaiveBayesPredict"
輸出結(jié)果說明:
$predicted的值為d各元素被歸入的類別,即c("Y", "D", "P")以分值0.2666667>0.1000000而歸入類別b;同理,c("Z", "Z")被歸入類別a。
R是一門十分容易掌握的語言,加之?dāng)U展的便捷開發(fā),它迅速在計(jì)算相關(guān)領(lǐng)域日益得到重視,很多企業(yè)級的應(yīng)用也有R的一席之地。然而R并非萬能,加之并行計(jì)算并沒有統(tǒng)一模式,以及數(shù)據(jù)規(guī)模的爆炸性增長給予R的in-memory計(jì)算方式極大的沖擊。如果要將R應(yīng)用于大數(shù)據(jù)領(lǐng)域,那么還有一段路要走,盡管商業(yè)方案的RevoScale提供了解決之道。
關(guān)于R語言及其擴(kuò)展的開發(fā)是怎樣的問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。
網(wǎng)頁題目:R語言及其擴(kuò)展的開發(fā)是怎樣的
網(wǎng)頁網(wǎng)址:http://aaarwkj.com/article40/gjoceo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、虛擬主機(jī)、手機(jī)網(wǎng)站建設(shè)、App開發(fā)、面包屑導(dǎo)航、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)