R是一个免费的统计分析软件(GNU版权,这一点与LINUX相似)。它几乎是SPLUS的一个克隆。(不要钱的SPLUS).几乎所有从R中学到的都可以在SPLUS中应用,反之亦然。而SPLUS是一个很高质量的,普遍使用的统计软件。美国药品检验局曾批准使用2个统计软件。SPLUS是其中一个,另一个是SAS。R有各种版本,可以在UNIX计算机,苹果机和这里要详细讲的视窗电脑机上运行;包括视窗95,98,ME,NT,2000, XP中都能运行。产生100个标准正态分布的随机数rnorm(100产生并把连续随机数离散化table(cut(rnorm(100), 8)R的另一种用法是将几个乃至几十个指令存档于一个ASC文件(比如叫 mycode),然后在R里打> Source(“ ' mycode”)或用鼠标点File→ sourcer code。对于现成的数据不必重新打字输入,而可用R来读。先将数据整理成ASCI文件(如用 wordpad),然后在R里作如下指令:(假定你的数据在 text. dat)(将数据读入并存在data3中)>data3< -read table("c: /stat/test. dat,, header=TRUE另外还可用 scanO来读数据,用 write来输出数据。R可以替代几乎所有的统计衣格,得到各种概率如果Z是一个二项分布随机变量,N-25,p-0.3,则P(Z=5)为> pinon(5,25,0.3P(Z=5)为> dbinon(5,25,0.3)P(≥5)为>1- pinor(4,25,0.3)#请注意是4而不是5。最后P(5至Z至10)为>1-(1- pinon(10,25,0.3)+ pinon(4,250.3)或pinon(10,25,0.3) pinor(4,25.0.3)或c>sum(dbinom(5: 10, 25,0.3)也可以索性打印张二项分布的概率衣来(N=25p=0.3)> dbinom(0:2525,0.3)为了看得更清楚些,你可以试试:print(dbinom(0: 25, 25,0.3),print. gap=2) E>print(cbind(0: 25, dbinom(0: 25, 25,0.3)).print. gap=3)如果Z是一个标准的正态分有变量,则P(Z<1)为norm如果要计算非标准的正态概率,则要给岀均值和标准差。如果Z是均值为-2,标准差为3的正态随机变更,则P(∠<1)为:pnorm(l, mean=-2, sd=3而P(2<7<3为pnorm(3, mean=-2, Sd=3)-pnorm(2, mean=-2, sd=3)对于超几何分布的概率,可用 hyperg或 hyperg来计算fl l假设左边这个2×2的表是我们关心的。要计算f11的分布概率1416则f1-6的概率为hyper(6,14,1619)如果用 hype则得到1l6的概率。对于卡方分布(自由度为1的中心分布),它小于3.84的概率为>pchisq( 3.84, df=l, ncp=04.·些习题题1:如果整个母体(所有人们)对于一件事的观点正好是一半一半(赞成/反对)。而我们用随机抽样来进行调查。用R来算出以下概率:(a)随机抽样10个人,其中6人或以上赞成(b)随机抽样100个人,其中60人或以上赞成()随机抽样1000个人,其中600人或以上赞成(d)随机抽样2000个人,其中1200人或以上赞成(c)随机抽样1500个人,其中赞成人数在300到600之间(包括300和600)。根据上面计算,如果你随杋抽样∫2000人,其中1200人赞成。你还相信一半/一半赞成/反对)吗?摆出理由。[所有计算均可用 phnom(完成]也可用R打印出一个小小的正态分布概率表,请与书中的比较> pnorm(scq(-3.5,3.5,0.5)设Z是·正态分布的随机变量。均值为2,标准差为4。请计算3085Z4226的概率。单样本的T检验。先将数据存入一个向量(比如)叫data6daa6≤-c(33.9,52.4,48.6,53.5,43.8)要检验Ho:μ=16.5Ha:μ<46.5(其实只算显著性),则t.test(data6, alternative=”less”,m=46.5另外2个对立假设是“ greater”和“tow. sided”。这函数除了给出显著性外还给山个95%置信区间t.test○还可以做两样本t检验。假定有2组数据叫 before和xaf'ter。又假定数据是不配对的。则可检验:Ho:μ=0Ha:μ<0t. test(x=before, y=xafter, alternative="less", mu=0, paired=FALSE)如果数据是配对的,则改 paired= FALSE为 paired=TRIE单样木的百分比检验。假设数据为:1000试验中600成功。要检验成功概率是否是0.5:Ho:p-0.5;Ha:p≠0.5,则>prop test(600, n=1000, p=0. 5, alternative="two sided另外两个对立的假设是“1ess”和“ greater”.这函数也给出95%的置信区间。进一步的讯息可用?t.test。查询在线手册。如果需要有R的附加功能包,则可以先查一下有那些装上了。> library列出所有装好的附加功能包。(假定你有 ctest.)Library(ctst)这样便将 testa进米了。(其中包括 binom test函数)li;rary(help= ctest)看看在 ctest功能包中包括那些函数。(其中有 binom test)> binom teste(600,n=1000p=0.5, alternative=two. siced)利用 binom test米做统计检验>>?binom. test如果 libraryc中没有你需要的功能包,则要先安装上(请看第一节)。凶数 binom lest与 prop.est相近,只不过prop!est用的是近似计算, binom. test是精确计算。不过 prop. tcst的功能适用性更强更广R还可以调用现成的C稈序和 Fortran稈序。不过比较复杂。要先将C/ Fortran程序转换成dI呵执行文件。然后调用。你应该尽量在R中完成你的计算。如果实在有调用C/ Fortran的需要,则请找英文的文件。R的些特点1R( Splus)是向量语言。几乎所有运算都最好向量化。(会比for循环句快很多)。+,,*,,今,…等等。要一个向量的一部分,则可用[]来表示下标范围。2R的运算都是以函数米完成的。R有3000个以上的函数。exp(x),log(x),sqrt(x),),c(xy).等都是函数,x都可以是向量。3、你自己在R中可以很容易定义新的函数(例子见后4、R的图像功能很强,可以互动作图,直至满意5、对于非常大的数据,R可能不太合适。(>1gig)6、许多附加功能包在R和 Splus中是完全一样的。(如 surviva, bootstrap等等)7、R中的随机数产生方法可以自由选择(如果你担心随机数的质量的话)8、R不要钱,可以让学生每人一份。可以在家里做计算。或在笔记本电脑上如果你要定义新的函数,叮以先在R外用仼何编辑软件编写好( ASCII TIe或 TXT fle)然后在R里边用 ource读进来。也可以直接在R里边编写。比如先调R的函数mcan,修改后变为你自己的函数iunk>junk<-edit(mean)如要修改你的函数,则可用>fixgjunk)如果你要定义的函数很短,则可直接在R中键入,例如>junk<-function(x)x/(x+5)下面是又个自我定义的函数例了。(给定样本大小,样本均值和标准差,产生假数据)Takedalas -function(size, xbar, sdd)ff(sdd<=0) stop(sdd must >0if( is numeric(xbar)stop( xbar must be a real number")fakel <-rnorm(size)fake <-fakel-mean(fakel)fake2(sdd/sd(fake2))XbaI这个函数在以下情况有用:有时习题中只给岀样本人小(-50),样本均值(-11.8)和标准差(=0.6),但没有原始数据。如果要做检验,则可以如卜做:>mydata <-fakedata(50, 11.8,0.6>ttest(mydata, mu=12, alternative="lcss进一步的阅读只能看英文了。可以先看“ An introduction lo r”。此书也是免费的。在R里点击Help,然后选这本书,可以打印出来阅读。R的指令和输出除了数字/符号外,都是英文,所以学点英文看来是必要的。