ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:36.85KB ,
资源ID:9551200      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9551200.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(R语言学习总结.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

R语言学习总结.docx

1、R语言学习总结R语言学习汇总报告经过接近一个学期的学习,从对 R语言的完全陌生,到现在对其有了一些粗浅的认识,其 中经历了遇到困难苦思冥想的艰辛,也有解决问题以后豁然开朗的畅快。在学习的过程中,以 前掌握的数理基础给我带来了不少便利,而认真地态度和踏实的性格也使我获益匪浅。在这个学期中,我学会了 R语言的基本操作和语法,以及针对具体的统计学问题相应的解 决方法。并按时完成老师布置的课后作业,以达到学以致用的目的,也加强了对 R语言操作的熟练度。一、初识R软件R软件是一套完整的数据处理、计算和制图软件系统。其功能包括:据存储和处理,数组运算,完整连贯的统计分析工具,优秀的统计制图功能已及简便而强

2、大编程语言。接触R语言以后,我的第一感觉就是方便和强大。 R语言中有非常多的函数和包,我们几乎不用自己去编一些复杂的算法,而往往只需要短短几行代码就能解决很复杂的问题,这给我 们的使用带来了极大地方便。于此同时,它又可操纵数据的输入输出,实习分支、循环,使用 者可以自定义功能,这就意味着当找不到合适的函数或包来解决所遇的问题时,我们又可以自 己编程去实现各种具体功能,这也正是 R语言的强大之处。二、学习心得在学习该书的过程中,我不仅加深了对统计学方法的理解,同时也掌握了 R软件的编程方法和基本技巧,了解了各种函数的意义和用法,并能把两者结合起来,解决实际中的统计问 题。1、R语言的基本语法及技

3、巧R语言不仅可以进行基础的数字、字符以及向量的运算,内置了许多与向量运算有关的函 数。而且还提供了十分灵活的访问向量元素和子集的功能。 R语言中经常出现数组,它可以看作是定义了维数(dim属性)的向量。因此数组同样可以进行各种运算,以及访问数组元素和 子集。二维数组(矩阵)是比较重要和特殊的一类数组, R可以对矩阵进行内积、外积、乘法、求解、奇异值分解及最小二乘拟合等运算,以及进行矩阵的合并、拉直等。 appIyO函数可以在对矩阵的一维或若干维进行某种计算,例如 appIy(A,1,mean)表示对A按行求和。R语言允许将不同类型的元素放在一个集合中,这个集合叫做一个列表,列表元素总可以 用“

4、列表名下标”的格式引用。而“列表名下标”表示的是一个子列表,这是一个很容 易混淆的地方。R语言中非常重要的一种数据结构是 data.frame (数据框),它通常是矩阵形式的数据,但每列可以是不同类型,数据框每列是一个变量,每行是一个观测,要注意的是每 一列必须有相同的长度。数据框元素可以使用下标或者下标向量引用。用一个非常简单的例子来说明向量、矩阵和数据框的简单运用。输入:Av-matrix(c(1:12),2,6,byrow=T) #A 为一个 2 行 6 列,按行排列的矩阵 X- as.data.frame(A) # 把A转化成数据框形式的XX1:2,seq(1,5,2) # 输出 X

5、的第 1、2行和 1、3、5列输出:V1 V3 V511 3 527 9 11输入:attach(X);Rv-V1/V5;R # 调用数据框X,计算并输出V1和 V5的比值输出:1 0.2000000 0.6363636与此同时R语言中也提供了其它高级程序语言共有的分支、循环等程序控制结构。比如 if/else 语句,for循环等。因此R语言也可以很容易的根据情况编写自己所需要的函数。例:编写一个R程序,输入一个整数n,如果n小于等于0,中止运算,并输出:“要求输 入一个正整数”。否则,如果 n是偶数,则将n除2赋值给n。否则将3n+1赋给n。不断循环, 直到n=1停止,并输出:“运算成功”解

6、:新建一个程序脚本,名为 chapter2.R ”,写入代码:fv-fu nctio n(n) if(nv=0) list( 要求输入一个正整数)为偶数时除2elsere peatif(n=1) break #n=1 时终止 else if(n/2=as.integer(n/2) nv-n/2 #nelse n hp_p er_cy lv-function(hp, cyl,.) hp/cylsp lat(hp_ per_cyl)(mtcars1,)118.33333sp lat(hp_ per_cyl)(mtcars)118.33333 18.33333 23.25000 18.33333 2

7、1.87500 17.5000030.62500 15.50000 23.7500010 20.50000 20.50000 22.50000 22.50000 22.50000 25.6250026.8750028.75000 16.5000019 13.00000 16.25000 24.25000 18.75000 18.75000 30.6250021.8750016.50000 22.7500028 28.25000 33.00000 29.16667 41.87500 27.25000等价于: hp_p er_cyl(mtcars$h p, mtcars$cyl)splat函数的优

8、点就是可以不用拆分字段,可以一起输入作为参数。(2)与plyr函数合用:fv-fu nctio n(mp g,wt,.) data.frame(mw=mp g/wt)dd pl y(mtcars,.(cyl),s plat (f)2each函数作用:把多个函数汇聚成一个函数,当使用这个函数时,将分别作用多个函数。它的作用 结果是把一个函数变成一个新函数。不足:不能给作用的函数指定附加参数,只能使用默认参数。例:funv-function(x) c(min=min( x),max=max(x),mea n=mea n( x)fun (1:10)等价于:fv-each( min, max,mea

9、n)f(1:10)3colwise 函数colwise(.f un ,.cols,.)说明:.fun :要转化的函数。.cols 是测试数据框的列是否应包含的判别函数或者与colwise 功能类似,只是对离散型变量有效与colwise 功能类似,只是对数值型变量有效mean, median等)转化为作用于数据框列向量 的函数。于plyr函数一起使用十分方便。作用结果生成一个新的函数。是要包含的列的名称。catcolwise(.f un,.)作用:把作用于数据框行向量的函数(如nu mcolwise(.fu n,.)例:nm iss in gv-f unction(x) sum(is .n a(

10、x)colwise( nm iss in g)(baseball)colwise( nm iss in g,.(sb,cs,so)(baseball)ddply (baseball,.(year),colwise( nm iss in g,.(sb,cs,so)numcol 等价于:colwise( nm iss in g,is .nu menc)(baseball)catcolwise( nmissi ng)(baseball) I等价于:colwise(nmissing,is.discrete)(baseball)4failwith 函数failwith(default=NULL, f,

11、quiet=FALSE)作用:修正一个函数,使得当该函数出现错误时返回一个设定的默认值,默认为空。作 用结果生成一个新的函数。fv-function(x) if (x=1) stop (Error) else 1f(1)Error in f(1) : Errorsafefsafef(1)Error in f(.) : ErrorNULL safefv-failwith(12,f,quiet=TRUE)safef(1)1 125summarise ()函数summarise(.data, .)作用:对数据框做统计汇总,为设定的统计方法或函数 例:summarise(baseball,durati

12、 on=max(year)-min (year), nteams=le ngth(u nique(team) durati on n teams1136 132head(dd ply(baseball,id,summarise,durati on=max(year)- mi n(year), nteams=le ngth(u nique(team) id duratio n n teams374245数据集变量操作1变量排序:arrange函数)arran ge(df, .(var1), .(var2)作用:按照指定列排序。注意:使用arrange函数排完序后行名会丢失,需要用 cbind补回

13、。例:arra nge(mtcars,cyl,dis p)carsarran ge(cars,cyl,dis p)-先把行名作为一个新的列加到数据框再排序2更改变量名ren ame(x, re place, warn_missi ng=TRUE)作用:通过名字修改变量名字,不是根据它的位置。 例:head(re name(tmt,re place=c( mp g=avg pg,3取行或列的数据”1 ” ” cly = new )take(x, along, in dices, drop = FALSE)作用:在x中,按照某个维度取数。参数说明:x为取数的源数据,可以是array或者datafr

14、ameo along:维度。1表示行,2表示列,3表示数组快等等。 in dices:具体维度所对应的指。drop:是否整合例: take(mtcars,2,1)- take(mtcars,1,1)-数据集操作取第一列 取第一行1数据集链接1)match_dfmatch_df(x, y, on=NULL)作用:;为原始的需要提取的数据框,y为条件数据框。on指定用来连接的变量,默认为 两个数据框中所有变量,可以为多个。通过 据,相当于inner join,区别为:前者结果集是 据框中所有字段。例:基础数据abct1t2match_df(t1,t2, on=c(a,b)a b c1 a aa 1

15、2)joinjoi n(x, y, by=NULL, type=作用:连接两个数据框on后面的字段,到x数据框取选取数:x的一个子集。inn er join包括两个数type 为连接类型:left、right、full。 match: all (所有匹配上的其他属性值都带上)、 first (只带上匹配上的第一个属性值)joi n(t1,t2,by=x2,ty pe=i nne广)joi n(t1,t2,by=x2,t yp e=left)joi n(t1,t2,by=x2,ty pe=right)tt1v-data.frame(x1=c(1,2,3,4),x2=c(5,6,7,8)tt2jo

16、i n(tt1,tt2,by=x2,t yp e=i nn er,match=all)x1 x2 y11 2 6 102 2 6 20参数说明:x,y为数据框。by=为要连接的字段,32 6 3042 6 40joi n(tt1,tt2,by=x2,ty pe=i nn er,match=first) x2 x1 y126 2 102.12 102 102 10merge和join相似,但是效率上join更优。62.262.36注意:3)merge例:xv-data.frame(a=c(1,2,4,5,6),x=c(9,12,14,21,8)ymerge(x,y) - 根据相同字段默认内连接根

17、据相同字段全链接左连接右连接根据a和x两个字段连接根据x表中a和y表中y连接merge(x,y,all=TRUE)-merge(x,y,all.x=TRUE)-merge(x,y,all.y=TRUE)-merge(x,y,by=c(a,x)-merge(x,y,by.x=a,by.y=y)-数据统计1 *ply函数listlist、discarededa*p ly(.data, 参数说明:作用:拆分数据,应用函数,再组合函数作用后的数据 输入:array、dataframe 输出:array、dataframeQiitputJ 7ip uiArmyD料ft frfLTiieHetArrava

18、aplyadplyalplydaplyddplydlplyd-plyTJstlaplyllplyi-piy1, 2, c(1,2)margin s, .f un,.,. progress = non e) data是要进行处理的数组 margi ns是用哪种方式去切割数据,取值为 fun是对切割的数据指定一个函数进行处理P rogress决定是否显示及用哪种方式显示进度条aa pl y(a,1,mea n,. progress-,non e) |_以文本形式展示进度条窗口展示进度条aa pl y(a,1,mea n,. progress=text)-aa pl y(a,1,mea n,. pr

19、ogress=wi n) -wi ndows d*pl y(.data, .variables, .f un,.,. progress - non e) 参数说明:.variables指定要按其分割的变量名称 da ply (data,.(age),.fu n=amea n) da ply(data,.(sex),.fu n=amea n) da ply(data,.(age,sex),.fu n=amea n) dd ply(data,.(sex),.fu n=amea n) dl ply(data,.(sex),.fu n=amea n)l*pl y(.data, fu n,,.progr

20、ess = non e)说明:列表类型的数据是最简单的数据,因为它已经被分割成一个个了(也就是列表数据 的一个个元素),所以这类函数没有参数用来描述是按什么进行切分的。ll ply(list,mea n)la ply(list,mea n)ld pl y(list,mea n)m* ply(.data,.fu n=NULL,.i nform=FALSE, )说明:把参数放到array或dataframe中整体输入作为参数,然后 fun后面的函数运用.data中的相应数值作为参数分别作用,得到 dataframe ( mdply) , array (maply)或者list (ml ply )。

21、与 splat相似:m*ply(a_matrix, FUN)的作用和 a*ply(a_matrix,1,splat(FUN)一样。data=data.frame( n=c(10,100,50),mea n=c(5,5,10),sd=c(1,2,1)datan mean sd1 10 5 12100 5 2350 10 1miply (data,r norm)2观测值出现个数(1) count 函数:count(df ,vars=NULL, wt_var=NULL)wt_var为权重。参数:df是要处理的数据框。vars是要进行分组统计的变量。注意:该函数的功能类似于table例:基础数据:a=

22、data.frame( names=c(a,b,c,d,a,a,a,b,b,c),wt=c(1,1,1,1,2,2,2,2,2,2)coun t(a,vars= names)- 单变量分组cou nt(a,vars= names,wt_var=wt)- 力卩上权重coun t(a,c( names,wt) - 双变量分组使用R软件可以方便直观的对数据进行描述性分析。如使用均值、中位数、顺序统计量等 度量位置。用方差、标准差、变异系数等度量分散程度。以及用峰度系数、偏度系数度量分布 形状。例如在窗口中输入:x-seq(1,589,3)len gth(x);mea n( x);var(x);sd(

23、x);media n( x);100*sd(x)/mea n(x)1 197 # 长度1 295 # 均值1 29254.5 # 方差1 171.0395 # 标准差1 295 #中位数1 57.97948 # 样本标准差n v-le ngth(x);mv-mea n( x);s-sd(x)n/(n-1)*( n-2)*sum(x-m)A3)/sA3;( n*( n+1)/( n-1)*( n-2)*( n-3)*sum(x-m)M)/sA4- (3* (n -1)八2)/( n-2)* (n-3)1 0 #偏度系数1 -1.2 # 峰度系数R软件可以检验样本是不是来自某种分布总体,以正态分布

24、为例,我们可以通过 shapiro.testO 函数提供 W统计量和相应的p值,并通过p值的大小判断样本是否来自正态分 布的总体。经验分布的 K-S检验方法的应用范围则更加广泛,不仅可以判断样本是否来自正态 总体,也能判断是否来自其它类型的分布总体。除此之外,R语言还有强大的画图功能,例如我们可以通过作直方图、茎叶图和总体分析 来描述数据的分布。 R中的高水平作图函数有: Plot() 、pairs()、coplot() 、qqnorm()、histO等等。当高水平作图函数并不能完全达到作图的指标时,需要低水平的作图函数予以补 充。低水平作图函数有: Points() 、lines() 、te

25、xt() 、polygon()、legend()、title() 和axis()等。需要注意的是低水平作图函数必须是在高水平作图函数所绘图形的基础之上增加新 的图形。hist()函数可以做出已知数据的直方图,stem()函数可以作茎叶图,boxplot()函数可用作 箱线图,qqline()和qqmorm()可以做出正态QQ图和相应的直线。R语言同时还能对两组数据 进行相关性检验,cor.test()函数提供了 Pearson相关性检验,Spearman秩检验和Kendall秩检验。其原假设为两组数据不相关,通过 p值的大小来判断是否拒绝原假设。我们还能用 stars()函数作出星图,来表示多

26、元数据,以上用法都非常简单易用,这里就不再赘述。3、R语言在统计推断中的应用首先,R语言可以用来进行参数估计。统计学中我们应用矩估计和极大似然估计来进行点估计,矩估计是通过解正规方程组得到 参数估计的值。极大似然估计通过解极大似然函数的极值点得到参数估计的值。在 R中我们可以使用Newton迭代法求解正规方程组,获得矩估计。用 optimize()函数求解极大似然函数,获得最大似然估计。由此可见,R语言能够很方便的解决参数点估计问题。点估计给出未知参数的近似值以后,并不能知道这种估计的精确性如何,可信程度如何, 为了解决这些问题,就需要用到区间估计,在学习用 R语言解决区间估计问题的过程中,我

27、最大的思想到就是R软件中内置的一些函数极大地方便了我们处理具体问题。比如 t.test() 函数。对单个正态总体,向量 x包含了来自该总体的一个样本,我们可以直接用 t.test(x) 指令得到均值u的点估计和区间估计。对于两个正态总体,向量 y包含了来自第二个总体的一个样本,我们可以用t.test(x,y) 来得到均值差u1-u2的点估计和区间估计,其中当两个总体方差 相同时,只需要加上 var.equal=T (缺省值为 F,即默认两个总体的方差是不同的)。同时t.test() 函数不仅可以进行双侧置信区间估计,也能进行单侧置信区间估计,只需要在括号内加上al= ” I”或者al= ” g

28、”。当数据不服从正态分布是,可以利用中心极限定理,取较大的 样本量,构造近似服从正态分布的统计量进行估计。其次,R语言可以用来进行假设检验。函数也可以用来进行单个 alternative (备择假则相反,用conf.level 指假设检验也是统计推断中的一个重要的内容,在统计学中,我们用搜索到的数据对某个事 先作出的统计假设按照某种设计好的方法进行检验,来判断此假设是否正确。也就是说为了检 验一个假设是否成立,先假定它是成立的,看看由此会导致什么结果。如果导致一个不合理的 现象出现,就认为原假设不正确,如果没有导出不合理的现象,则不能拒绝原假设。R软件给出了参数假设检验的方法。以正态总体为例, t.test()或者两个正态总体的均值的假设检验。进

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1