




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
R编程笔记一、R数据结构在R中,我们一直都在与对象(object)打交道。存储类型(mode)实数型(real):整数(integer)、单精度(single)、双精度(double)虚数型(complex):如9+11i字符型(character,string):如"hello"(单双引号都行)逻辑型(logical):TRUE,FALSE(简写T,F)函数(function)表达式(expression)2.结构化数据向量(vector):一列数值或字符矩阵(matrix):m行×n列(各列之间类型都相同)数据框(dataframe):类似矩阵,但每一列的数据类型可以不同数组(array):多维度(不是多变量)列表(list):有诸多成员杂合在一起,这些成员可以是任意类型,甚至是list本身(及其灵活的数据类型)因子(factor):分类变量时间序列(ts):时间序列数据使用变量的时候要特别注意,R对大小写敏感!产生数据3.1简单的规则序列>1:10#井号是R的注释符号[1]12345678910>10:1[1]10987654321>seq(1,10,0.5)#等差数列[1]1.01.52.02.53.03.54.04.55.05.5[11]6.06.57.07.58.08.59.09.510.0>rep(2,5)#重复相同的对象[1]22222>rep(1:3,times=3)#观察与下例的不同[1]123123123>rep(1:3,each=3)[1]111222333>rep(1:3,1:3)[1]1223333.2产生结构化数据向量很容易用函数c()产生:>x=c(9,1,1)>x[1]911>(x=c('Xie','Yi','Hui'))#为什么用括号☺??????[1]"Xie""Yi""Hui"矩阵用matrix()产生:>matrix(1:10,2)#注意:默认按列排列[,1][,2][,3][,4][,5][1,]13579[2,]246810>matrix(1:10,nrow=2,ncol=5,byrow=T)[,1][,2][,3][,4][,5][1,]12345[2,]678910数据框用data.frame()产生>x=data.frame(1:5,4:8)#把若干个向量合成数据框>xX1.5X4.8114225336447558>x=cbind(x,c('A','B','C','D','E'))#绑上一列字符(按列组合,rbind为按行组合)>xX1.5X4.8c("A","B","C","D","E")114A225B336C447D558E>dimnames(x)#看一下x的行列名[[1]][1]"1""2""3""4""5"[[2]] [1]"X1.5"[2]"X4.8"[3]"c(\"A\",\"B\",\"C\",\"D\",\"E\")">colnames(x)#只看列名[1]"X1.5"[2]"X4.8"[3]"c(\"A\",\"B\",\"C\",\"D\",\"E\")">colnames(x)=c('X1','X2','X3')#改列名>x#这样看起来就舒服多了X1X2X3114A225B336C447D558E因子用factor()产生列表用list()产生时间序列用ts()产生外部读入数据剪贴板(clipboard),或者SQL、Access数据库(RODBC包)等例:D:\x.txt文件"V1""V2""V3""V4""V5"11591317226101418>x=read.table('d:\\x.txt',header=T)>xV1V2V3V4V511591317226101418运算4.1算术运算:+,-,*,/,%%(余数),%/%(整数商),^(乘方)>5%%2[1]1>5%/%2[1]24.2逻辑运算:&,|,!(且、或、非);>,<,>=,<=,=="<-"是赋值符号,x<-9与x=9等价!小于负数加上空格x<-9或者x<(-9)>1==T[1]TRUE>2==T[1]FALSE>0==F[1]TRUE>1:10>5[1]FALSEFALSEFALSEFALSEFALSETRUETRUETRUETRUETRUE5.下标的使用向量、因子、时间序列x[i];矩阵、数据框x[i,j]x[i,]x[,j];数组就是根据维度多打几个逗号而已x[i,j,k,…];列表要用双重中括号x[[i]]。特殊的使用:在中括号中用逻辑表达式提取元素或给特定元素赋值,例子如下:>x=matrix(1:20,4,5)>x[,1][,2][,3][,4][,5][1,]1591317[2,]26101418[3,]37111519[4,]48121620>x[x>=2&x<16]#提取数值[1]23456789101112131415>x[x>=2&x<16]=NA#为特定元素赋值>x[,1][,2][,3][,4][,5][1,]1NANANA17[2,]NANANANA18[3,]NANANANA19[4,]NANANA1620数学统计函数6.1基础:最大值max(),最小值min(),均值mean(),标准差sd(),方差var(),相关系数cor(),求和sum(),积prod(),中位数median(),分位数quantile(),对数log(),指数exp(),排列factorial(),组合choose(),四舍五入round(),向下取整floor(),向上取整ceiling(),总结summary(),6.2矩阵累加cumsum(),秩rank(),排序sort(),倒序rev(),矩阵转置t(),逆矩阵solve(),特征根eigen(),…6.3统计分布的四大金刚:pnorm(),dnorm(),qnorm(),rnorm(),…(p,d,q,r+分布名称分别构成:分布函数值、密度函数值、分位数、随机数,如pf()表示F分布函数值,runif()表示产生均匀分布的随机数);?????6.4其他(补充)抽样sample(),线性模型lm(),广义线性模型glm(),t检验t.test()程序控制流(语句)7.1条件/选择/循环语句选择控制if(条件){怎样怎样}if(条件){怎样怎样}else{又怎样}ifelse()函数:ifelse(条件,满足则取我,不满足则取我)switch()函数:多条件选择(至少我很少用它)循环for(循环变量in一个序列中){怎样怎样}while(某条件满足则){怎样怎样}例:>cond=T>if(cond)winDialog('ok','HelloKitty!')>x=0>for(iin10:1){+x=x+i+}>x[1]55>while(x>=1&winDialog("yesno","I'malittlepig...")!='YES'){+x=x-1+}#这个例子比较整人……二、R统计分析1.线性回归x=runif(100);y=0.2*x+0.1*rnorm(100)fit=lm(y~x)summary(fit)Call:Call:lm(formula=y~x)Residuals:Min1QMedian3QMax-0.230127-0.0678960.0077060.0540870.249110Coefficients:EstimateStd.ErrortvaluePr(>|t|)(Intercept)0.0096390.0196380.4910.625x0.1939760.0327115.9304.55e-08***---Signif.codes:0'***'0.001'**'0.01'*'0.05'.'0.1''1Residualstandarderror:0.0979on98degreesoffreedomMultipleR-Squared:0.2641,AdjustedR-squared:0.2566F-statistic:35.17on1and98DF,p-value:4.548e-08plot(x,y);abline(fit)fit=lm(y~x+I(x^2))#高次的回归,注意I()summary(fit)2.方差分析x=gl(3,50);y=rnorm(150)summary(aov(y~x))DfDfSumSqMeanSqFvaluePr(>F)x21.7430.8720.80530.4489Residuals147159.0921.082boxplot(y~x,notch=T)3.位置参数的检验??????、参数方法t检验:t.test()非参数方法:wilcox.test(),kruskal.test(),等等条件检验:coin包(ConditionalInference)4.广义线性模型???????三个核心概念:因变量:指数分布族自变量的线性组合连接函数(linkfunction):用来建立因变量的分布参数与之间的连接用得很广泛的所谓logistic回归只不过是GLM的特例:分布族为二项分布、连接函数取logit函数。普通的回归也是GLM的特例:分布族为正态分布、连接函数为f(x)=xR函数:glm(formula,family=gaussian,data,...)例:counts<-c(18,17,15,20,10,20,25,13,12)outcome<-gl(3,1,9)treatment<-gl(3,3)print(d.AD<-data.frame(treatment,outcome,counts))treatmenttreatmentoutcomecounts111182121731315421205221062320731258321393312summary(glm.D93)5.聚类分析K-Means聚类:kmeans()层次聚类:hclust()专做聚类的包:cluster(里面还有很多种聚类方法)6.列联表的独立性检验一个有用的函数:table()>table(rpois(100,5),rbinom(100,1,.5))Fisher精确检验:fisher.test()卡方检验:chisq.test()x=matrix(c(12,5,7,7),nc=2)chisq.test(x)Pearson'sChi-squaredtestwithYates'continuitycorrectiondata:xX-squared=0.6411,df=1,p-value=0.42337.混合效应??????nlme包lme4包8.分位数回归quantreg包线性分位数回归函数rq()等等等等……根据自己的研究需要,可以自己写一点代码,或者用别人的包。怎么知道该用什么包呢?——读书!如:AHandbookofStatisticalAnalysesUsingRMixed-EffectsModelsinSandS-Plus三、作图用两天把graphics包的所有函数都看一遍,也就到境界了小例子(入门应该还看不懂,就看个意思吧)火海刀山?y=.1+runif(20,.2,1)xx=c(1,1:20,20)yy=c(0,y,0)plot(xx,yy,type='n',xlab='x',ylab='y')for(iin255:0){yy=c(0,y-(1-i/255)*min(y),0)polygon(xx,yy,col=rgb(1,i/255,0),border=NA)Sys.sleep(.05)}时钟?x=seq(0,2*pi,.01)par(pty='s')plot(sin(x),cos(x),type='l')n=60for(iin1:n){points(0,0,cex=2)arrows(0,0,cos(2*pi/n*(i-1)),sin(2*pi/n*(i-1)),col='white')arrows(0,0,cos(2*pi/n*i),sin(2*pi/n*i))Sys.sleep(1)arrows(0,0,cos(2*pi/n*(i-1)),sin(2*pi/n*(i-1)),col='white')lines(sin(x),cos(x))}winDialog置信区间:f=function(n=1000,alpha=0.95,rn=50){d=replicate(n,rnorm(rn))m=colMeans(d)#s=apply(d,2,sd)z=qnorm(1-(1-alpha)/2)y0=m-z*1/sqrt(50)y1=m+z*1/sqrt(50)plot(1,xlim=c(0.5,n+0.5),ylim=c(min(y0),max(y1)),type="n",xlab="",ylab="")abline(h=0,lty=2)for(iin1:n){arrows(i,y0[i],i,y1[i],length=0.05,angle=90,code=3,col=ifelse(0>y0[i]&0<y1[i],"blue","red"))points(i,m[i])Sys.sleep(.1)}Sys.sleep(3)}replicate(2,f(100,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级数学北师大版下册第六单元《认识直角》教学设计教案1
- 五年级数学口算100题
- 高中语文第二册赤壁赋 同步练习3
- 公寓学生兼职合同范例
- 动产拍卖委托合同范例
- 前期系统检测合同范例
- 加盟文件合同范例
- 公司厂房转让合同范例
- 供货灯具合同范例
- 《电子产品综合设计与制作》 课件 5.3人体红外检测模块电路的功能验证
- 25题电控工程师岗位常见面试问题含HR问题考察点及参考回答
- 机动车驾驶培训教练员岗前培训教材
- 地质学基础-读图题
- 管理会计学:作业成本法
- 脑血管解剖及脑梗塞定位诊断
- SMT常见贴片元器件封装类型和尺寸
- 设计基础全套教学课件
- PCBA红胶工艺贴片掉件改善(6Sigma改善报告)
- 社会主义发展简史智慧树知到课后章节答案2023年下北方工业大学
- 2022年考研数学(二)真题(含答案及解析)【可编辑】
- 幼儿园班本课程《再见吧幼儿园》
评论
0/150
提交评论