R (http://www.r-project.org) 系統(tǒng)是用于統(tǒng)計(jì)分析和圖形化的計(jì)算機(jī)語(yǔ)言及分析工具,為了保證性能,其核心計(jì)算模塊是用C、C++和Fortran編寫(xiě)的。同時(shí)為了便于使用,它提供了一種腳本語(yǔ)言,即R語(yǔ)言。R語(yǔ)言和貝爾實(shí)驗(yàn)室開(kāi)發(fā)的S語(yǔ)言類(lèi)似。R支持一系列分析技術(shù),包括統(tǒng)計(jì)檢驗(yàn)、預(yù)測(cè)建模、數(shù)據(jù)可視化等等。在CRAN(http://cran.r-project.org) 上可以找到眾多開(kāi)源的擴(kuò)展包。
R軟件的首選界面是命令行界面,通過(guò)編寫(xiě)腳本來(lái)調(diào)用分析功能。如果缺乏編程技能,也可使用圖形界面,比如使用RCommander(http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/)或Rattle(http://rattle.togaware.com)。[2]
創(chuàng)新互聯(lián)建站于2013年成立,先為巴里坤哈薩克等服務(wù)建站,巴里坤哈薩克等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為巴里坤哈薩克企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
另外,由于R系統(tǒng)是本文研究的重點(diǎn),所以會(huì)花費(fèi)較大篇幅對(duì)其各種特性、優(yōu)勢(shì)及不足進(jìn)行較為細(xì)致的分析。
如前所述,R系統(tǒng)是一種腳本語(yǔ)言,它主要以命令方式提供了對(duì)各種數(shù)據(jù)的處理和統(tǒng)計(jì)分析過(guò)程,主要能力或功能描述如下:
1.數(shù)據(jù)導(dǎo)入和導(dǎo)出:可以從文件中獲取數(shù)據(jù),將處理結(jié)果存放到數(shù)據(jù)文件中;如HousePrice <- read.table("houses.data");data(Puromycin, package="datasets");attach(“faithful”)
2.向量數(shù)據(jù)處理能力:它可以處理向量數(shù)據(jù)(包括數(shù)值、邏輯和字符串),也可以按一定規(guī)則生成向量數(shù)據(jù);支持向量運(yùn)算(+、-、*、/、冪運(yùn)算);
n向量賦值:x <- c(10.4, 5.6, 3.1, 6.4, 21.7);y <- c(x, 0, x)
n向量運(yùn)算:1/x;v <- 2*x + y + 1;sum((x-mean(x))^2)/(length(x)-1)
n向量生成:z <- 0:9;s4 <- seq(length=51,from=-5, by=.2)
3.復(fù)雜數(shù)據(jù)處理能力:支持矩陣、支持列表數(shù)據(jù)類(lèi)型(元素不同)、數(shù)據(jù)幀(類(lèi)似矩陣,但元素類(lèi)型可不同);
因子(集合):
state <- c("tas", "sa", "qld","nsw", "nsw", "nt", "wa","wa","qld", "vic", "nsw","vic", "qld", "qld", "sa","tas","sa", "nt", "wa","vic", "qld", "nsw", "nsw","wa","sa", "act", "nsw","vic", "vic", "act");statef<- factor(state)
n數(shù)組或矩陣:dim(z) <- c(3,5,100);x <- array(1:20, dim=c(4,5))
n列表:Lst <- list(name="Fred", wife="Mary",no.children=3,child.ages=c(4,7,9))
n數(shù)據(jù)幀:accountants <- data.frame(home=statef, loot=incomes, shot=incomef)
4.支持函數(shù):包括系統(tǒng)內(nèi)置函數(shù)和用戶(hù)定義函數(shù);自定義函數(shù)舉例如下:
twosam <- function(y1, y2) {
n1 <- length(y1); n2 <- length(y2)
yb1 <- mean(y1); yb2 <- mean(y2)
s1 <- var(y1); s2 <- var(y2)
s <- ((n1-1)*s1 + (n2-1)*s2)/(n1+n2-2)
tst <- (yb1 - yb2)/sqrt(s*(1/n1 + 1/n2))
tst
}
5.概率分布:支持多種概率分布模型,如下:
nBeta:貝塔分布
nBinomial:二項(xiàng)分布
nCauchy:柯西分布
nchi-squared:卡方分布
nexponential:指數(shù)分布
nF:F分布
nGamma:伽馬分布
nGeometric:幾何分布
nHypergeometric:超集合分布
nlog-normal:對(duì)數(shù)正態(tài)分布
nlogistic:對(duì)數(shù)分布
nnegativebinomial:負(fù)二項(xiàng)分布
nnormal:正態(tài)分布
nPoisson:泊松分布
nsignedrank:符號(hào)秩次分布
nStudent:學(xué)生氏分布
nUniform:?jiǎn)我环植?/p>
nWeibull:Weibull分布
nWilcoxon:威爾考克斯分布
以下為分布的舉例:
n正態(tài)分布:
attach(faithful)
long <-eruptions[eruptions > 3]
plot(ecdf(long),do.points=FALSE, verticals=TRUE)
x <- seq(3, 5.4,0.01)
lines(x, pnorm(x, mean=mean(long),sd=sqrt(var(long))), lty=3)
上述命令生成的圖如下:
n指數(shù)分布:
x <- seq(1, 5, 0.01)
plot(pexp(x,3))
生成的統(tǒng)計(jì)圖如下:
6.支持條件語(yǔ)句和循環(huán)語(yǔ)句
條件語(yǔ)句:if (expr_1)expr_2elseexpr_3
循環(huán)語(yǔ)句:
xc <- split(x, ind)
yc <- split(y, ind)
for (i in 1:length(yc)) {
plot(xc`i`, yc`i`)
abline(lsfit(xc`i`, yc`i`))
}
7.支持多種圖型化的數(shù)據(jù)表達(dá)方式,舉例如下(直方圖):
x <- c(10.4, 5.6, 3.1, 6.4, 21.7)
hist(x)
R系統(tǒng)具有如下優(yōu)勢(shì):
1.因其為單行命令模式,所以對(duì)于一般有開(kāi)發(fā)經(jīng)驗(yàn)的用戶(hù),簡(jiǎn)便易學(xué),容易上手;
2.數(shù)據(jù)類(lèi)型支持豐富;
3.支持的概率分布模型較全面,一般能滿(mǎn)足日常使用;而且支持通用的假設(shè)檢驗(yàn)方法;
4.支持流程控制和自定義函數(shù)。
但R系統(tǒng)也有如下缺點(diǎn):
1.雖然簡(jiǎn)便易學(xué),和純粹基于圖型的挖掘工具相較,使用起來(lái)仍不夠直觀、方便;
2.對(duì)使用人員而言,仍有一定的要求;
3.一般只能從文件中獲取數(shù)據(jù),無(wú)法和數(shù)據(jù)庫(kù)系統(tǒng)相結(jié)合。