R语言讲义•免费(没有权力和铜臭)•资源公开,可改变代码(不是黑盒子,也不是吝啬鬼,透明是防止“腐败”的最好方式)•容易学习。可编程以实行复杂的课题•可扩展:通过数千个网上提供的适用于不同领域、不同目的、不同方法的软件包来实现你的目标。也可以把你的方法贡献出来•功能强大(绘图功能,优秀的内在帮助系统,R社区的支持,不断更新,不断修正)•没有任何一个商业软件有如此多和如此新的算法•世界应用统计学家大都把自己的方法首先以R来实现,并尽量放到R网站上•一年多,R网站的软件包数量增加了两倍,从近1000个到近3000多个。大都都有关于计算、演示和输入输出方法的函数和例子数据•除非得到巨额资助(或者永远使用盗版软件),没有理由在公立学校教授商业软件•绝大多数美国统计研究生都会的语言(Berkeley统计和应用数学本科都开设R语言课)•我的很大一部分数据分析知识的来源就是R.•我都能学会,并且到处宣传和普及,相信你们会做得更好!点击CRAN得到一批镜像网站下载R()点击镜像网站比如Berkeley选择这个,下载安装文件选择这个,下载软件包选择basePackages(每个都有大量数据和可以读写修改的函数/程序)•baseTheRBasePackage•bootBootstrapR(S-Plus)Functions(Canty)•classFunctionsforClassification•clusterClusterAnalysisExtendedRousseeuwetal.•concordConcordanceandreliability•datasetsTheRDatasetsPackage•exactRankTestsExactDistributionsforRankandPermutationTests•foreignReadDataStoredbyMinitab,S,SAS,SPSS,Stata,Systat,dBase,...•graphicsTheRGraphicsPackage•grDevicesTheRGraphicsDevicesandSupportforColoursandFonts•gridTheGridGraphicsPackage•KernSmoothFunctionsforkernelsmoothingforWand&Jones(1995)•latticeLatticeGraphicsInterface•toolsToolsforPackageDevelopment•utilsTheRUtilsPackagePackages(继续)•MASSMainPackageofVenablesandRipley'sMASS•methodsFormalMethodsandClasses•mgcvGAMswithGCVsmoothnessestimationandGAMMsbyREML/PQL•multtestResampling-basedmultiplehypothesistesting•nlmeLinearandnonlinearmixedeffectsmodels•nnetFeed-forwardNeuralNetworksandMultinomialLog-LinearModels•nortestTestsforNormality•outliersTestsforoutliers•plsPartialLeastSquaresRegression(PLSR)andPrincipalComponentRegression(PCR)•pls.pcrPLSandPCRfunctions•rpartRecursivePartitioning•SAGxStatisticalAnalysisoftheGeneChip•smaStatisticalMicroarrayAnalysis•spatialFunctionsforKrigingandPointPatternAnalysis•splinesRegressionSplineFunctionsandClasses•statsTheRStatsPackage•stats4StatisticalFunctionsusingS4Classes•survivalSurvivalanalysis,includingpenalisedlikelihood.•tcltkTcl/TkInterface•toolsToolsforPackageDevelopment•utilsTheRUtilsPackagePackages(网上)•网上还有许多所有这些Packages可以自由下载•Base中的package包含常用的函数和数据•而其他的packages包含各个方向统计学家自己发展的方法和数据。•希望你是下一个加盟这些packages的作者之一。安装Packages关机时是否保存?•如果是,你的运算结果(赋值的变量及函数等)保存在一个文件(名字为.RData)中,下次开机时还会重新载入.如果你不要则删去该文件即可.•其实,除非是做一个需要多次才完成的大课题,一般你都不想保存.你所用的代码可以以程序脚本形式(*.R,注意:一定要自己敲入”.R”,没有默认)保存几个有用的函数函数:f(x):名字(变元)getwd()setwd(dir=f:/2010stat)#或setwd(f:/2010stat)getwd()x=rnorm(100)ls()?rnorm#或help(rnorm)apropos(“norm“)identical(1:10,1:10)identical(1:10,as.numeric(1:10))identical(1:10,as.integer(1:10))赋值和运算•z=rnorm(1000000,4,0.1)•median(z)•赋值:“=”可以用“-”代替•x-z-y-w•简单数学运算有:+,-,*,/,^,%*%,%%(mod)%/%(整数除法)等等•常用的数学函数有:abs,sign,log,log2,log10,logb,expm1,log1p(x),sqrt,exp,sin,cos,tan,acos,asin,atan,cosh,sinh,tanh赋值和运算•round,floor,ceiling•gamma,lgamma,digammaandtrigamma.•sum,prod,cumsum,cumprod•max,min,cummax,cummin,pmax,pmin,range•mean,length,var,duplicated,unique•union,intersect,setdiff•,=,,=,&,|,!从高到低的运算次序一些基本运算例子x=1:100(x=1:100)sample(x,20)set.seed(0);sample(1:10,3)#随机种子!z=sample(1:200000,10000)z[1:10]#向量下标y=c(1,3,7,3,4,2)z[y]一些基本运算例子z=sample(x,20,rep=T)z(z1=unique(z));length(z1)z=sample(x,100,rep=T)xz=setdiff(x,z)sort(union(xz,z))sort(union(xz,z))==xsetequal(union(xz,z),x)intersect(1:10,7:50)sample(1:100,20,prob=1:100)一些基本运算例子pi*10^2#能够用?”*”来看基本算术运算方法*(pi,^(10,2))pi*(1:10)^2x-pi*10^2xprint(x)(x=pi*10^2)pi^(1:5)print(x,digits=12)class(x)typeof(x)一些基本运算例子class(cars)typeof(cars)names(cars)summary(cars)str(cars)row.names(cars)class(dist~speed)plot(dist~speed,cars)一些基本运算例子head(cars)#cars[1:6,]tail(cars)ncol(cars);nrow(cars)dim(cars)lm(dist~speed,data=cars)cars$qspeed=cut(cars$speed,breaks=quantile(cars$speed),include.lowest=TRUE)names(cars)cars[3]table(cars[3])is.factor(cars$qspeed)plot(dist~qspeed,data=cars)(a=lm(dist~qspeed,data=cars))summary(a)一些基本运算例子x-round(runif(20,0,20),digits=2)summary(x)min(x);max(x)median(x)#medianmean(x)#meanvar(x)#variancesd(x)#standarddeviationsqrt(var(x))rank(x)#rankorder(x)x[order(x)]sort(x)sort(x,decreasing=T)#sort(x,dec=T)sum(x);length(x)round(x)一些基本运算例子fivenum(x)#quantilesquantile(x)#quantiles(differentconvention)有多种定义quantile(x,c(0,.33,.66,1))mad(x)#normalizedmeandeviationtothemedian(“medianaveragedistance“)可用?mad查看cummax(x)cummin(x)cumprod(x)cor(x,sin(x/20))#correlation一些基本运算例子#直方图x-rnorm(200)hist(x,col=lightblue)rug(x)#茎叶图stem(x)#散点图N-500x-rnorm(N)y-x+rnorm(N)plot(y~x)a=lm(y~x)abline(a,col=red)#或者abline(lm(y~x),col=red)print(HelloWorld!)paste(x的最小值=,min(x))#cat(\\end{document}\n,file=RESULT.tex,append=TRUE)demo(graphics)#演示画图一些基本运算例子#复数运算x=2+3i(z-complex(real=rnorm(10),imaginary=rnorm(10)))complex(re=rnorm(3),im=rnorm(3))Re(z)Im(z)Mod(z)Arg(z)choose(3,2);factorial(6)#解方程f=function(x)x^3-2*x-1uniroot(f,c(0,2))#迭代#如果知道根为极值f=function(x)x^2+2*x+1optimize(f,c(-2,2))分布和产生随机数•正态分布:pnorm(1.2,2,1);dnorm(1.2,2,1);qnorm(.7,2,1);rnorm(10,0,1)#rnorm(10)•t分布:pt(1.2,1);dt(1.2,2);qt(.7,1);rt(10,1)•此外还有指数分布、F分布、“卡方”分布、Beta分布、二项分布、Cauchy分布、Gamma分布、几何分布、超几何分布、对数正态分布、Logistic分布、负二项分布、Poisson分布、均匀分布、Weibull分布、Willcoxon分布等•变元可以是向量!a=factor(letters[1:10])a[3]=w#不行a=as.character(a)a[3]=wa=factor(a)a可能遇到的问题输入输