资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
R语言学习汇总报告经过接近一个学期的学习,从对 R语言的完全陌生,到现在对其有了一些粗浅的认识,其 中经历了遇到困难苦思冥想的艰辛,也有解决问题以后豁然开朗的畅快。在学习的过程中,以 前掌握的数理基础给我带来了不少便利,而认真地态度和踏实的性格也使我获益匪浅。在这个学期中,我学会了 R语言的基本操作和语法,以及针对具体的统计学问题相应的解 决方法。并按时完成老师布置的课后作业,以达到学以致用的目的,也加强了对R语言操作的熟练度。一、初识R软件R软件是一套完整的数据处理、计算和制图软件系统。其功能包括:据存储和处理,数组运算,完整连贯的统计分析工具,优秀的统计制图功能已及简便而强大编程语言。接触R语言以后,我的第一感觉就是方便和强大。R语言中有非常多的函数和包,我们几乎不用自己去编一些复杂的算法,而往往只需要短短几行代码就能解决很复杂的问题,这给我 们的使用带来了极大地方便。于此同时,它又可操纵数据的输入输出,实习分支、循环,使用 者可以自定义功能,这就意味着当找不到合适的函数或包来解决所遇的问题时,我们又可以自 己编程去实现各种具体功能,这也正是 R语言的强大之处。二、学习心得在学习该书的过程中,我不仅加深了对统计学方法的理解,同时也掌握了R软件的编程方法和基本技巧,了解了各种函数的意义和用法,并能把两者结合起来,解决实际中的统计问 题。1、R语言的基本语法及技巧R语言不仅可以进行基础的数字、字符以及向量的运算,内置了许多与向量运算有关的函 数。而且还提供了十分灵活的访问向量元素和子集的功能。R语言中经常出现数组,它可以看作是定义了维数(dim属性)的向量。因此数组同样可以进行各种运算,以及访问数组元素和 子集。二维数组(矩阵)是比较重要和特殊的一类数组,R可以对矩阵进行内积、外积、乘法、求解、奇异值分解及最小二乘拟合等运算,以及进行矩阵的合并、拉直等。apply()函数可以在对矩阵的一维或若干维进行某种计算,例如apply(A,1,mean)表示对A按行求和。R语言允许将不同类型的元素放在一个集合中,这个集合叫做一个列表,列表元素总可以 用“列表名下标”的格式引用。而“列表名下标”表示的是一个子列表,这是一个很容 易混淆的地方。R语言中非常重要的一种数据结构是data.frame (数据框),它通常是矩阵形式的数据,但每列可以是不同类型,数据框每列是一个变量,每行是一个观测,要注意的是每 一列必须有相同的长度。数据框元素可以使用下标或者下标向量引用。用一个非常简单的例子来说明向量、矩阵和数据框的简单运用。输入:A-matrix(c(1:12),2,6,byrow=T) #A 为一个 2 行 6 列,按行排列的矩阵 X- as.data.frame(A) # 把A转化成数据框形式的XX1:2,seq(1,5,2) # 输出 X 的第 1、2行和 1、3、5列输出:V1 V3 V51 1 3 52 7 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停止,并输出:“运算成功”解:新建一个程序脚本,名为chapter2.R ”,写入代码:fv-fu nctio n(n)if(n=0) list(要求输入一个正整数)elserepeatif(n=1) break #n=1时终止 else if(n/2=as.integer(n/2) n-n/2 #n为偶数时除 2else n splat(hp_per_cyl)(mtcars)1 18.33333 18.33333 23.25000 18.33333 21.87500 17.5000030.62500 15.50000 23.7500010 20.50000 20.50000 22.50000 22.50000 22.50000 25.6250026.0 28.75000 16.5000019 13.00000 16.25000 24.25000 18.75000 18.75000 30.6250021.0 16.50000 22.7500028 28.25000 33.00000 29.16667 41.87500 27.25000等价于: hp_per_cyl(mtcars$hp,mtcars$cyl)splat函数的优点就是可以不用拆分字段,可以一起输入作为参数。(2) 与plyr函数合用: fv-function(mpg,wt,.) data.frame(mw=mpg/wt) ddply(mtcars,.(cyl),splat (f)2 each函数作用:把多个函数汇聚成一个函数,当使用这个函数时,将分别作用多个函数。它的作用 结果是把一个函数变成一个新函数。不足:不能给作用的函数指定附加参数,只能使用默认参数。例: funv-function(x) c(min=min( x),max=max(x),mea n=mea n( x) fun (1:10)等价于: f f(1:10)3 colwise 函数colwise(.f un ,.cols,.)说明:.fun :要转化的函数。.cols是测试数据框的列是否应包含的判别函数或者是要包含的列的名称。catcolwise(.fun,.)与colwise 功能类似,只是对离散型变量有效numcolwise(.fun,.)与colwise 功能类似,只是对数值型变量有效作用:把作用于数据框行向量的函数(如mean, median等)转化为作用于数据框列向量的函数。于plyr函数一起使用十分方便。作用结果生成一个新的函数。例: nm iss in g 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) nu mcolwise( nm iss in g)(baseball)等价于:colwise(nmissing,is.numeric)(baseball) catcolwise( nmissi ng)(baseball)等价于:colwise(nmissing,is.discrete)(baseball)4 failwith 函数failwith(default=NULL, f, quiet=FALSE) 作用:修正一个函数,使得当该函数出现错误时返回一个设定的默认值,默认为空。作 用结果生成一个新的函数。 fv-function(x) if (x=1) stop(Error) else 1 f(1)Error in f(1) : Error safef safef(1)Error in f(.) : ErrorNULL safefv-failwith(12,f,quiet=TRUE) safef(1)1 125 summarise(函数summarise(.data,)作用:对数据框做统计汇总,为设定的统计方法或函数 例:summarise(baseball,durati on=max(year)- min (year), nteams=le ngth(u nique(team) durati on n teams1 136132head(ddply(baseball,id,summarise,durati on=max(year)- mi n(year), nteams=le ngth(u nique(team) id duratio n n teams1 aaro nha01 2232 abernte02 1773 adairje01 1244 adamsba012025 adamsbo031346 adcocjo01 165数据集变量操作1变量排序:arrange函数arran ge(df, .(var1), .(var2)作用:按照指定列排序。注意:使用arrange函数排完序后行名会丢失,需要用 cbind补回例: arra nge(mtcars,cyl,disp) cars arran ge(cars,cyl,disp)先把行名作为一个新的列加到数据框再排序2更改变量名ren ame(x, replace, warn_missi ng=TRUE)作用:通过名字修改变量名字,不是根据它的位置例:mpg二avgpg.cly = new )3取行或列的数据take(x, along, in dices, drop = FALSE)作用:在x中,按照某个维度取数。参数说明:x为取数的源数据,可以是array或者dataframeo along:维度。1表示行,2表示列,3表示数组快等等。 in dices:具体维度所对应的指。drop:是否整合例: take(mtcars,2,1)-取第一列 take(mtcars,1,1)-取第一行数据集操作 1数据集链接1) match_df match_df(x, y, on=NULL)作用:;为原始的需要提取的数据框,y为条件数据框。on指定用来连接的变量,默认为 两个数据框中所有变量,可以为多个。通过on后面的字段,到x数据框取选取数据,相当于inner join,区别为:前者结果集是x的一个子集。inn er join包括两个数 据框中所有字段。例:基础数据 a-c(a,b
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号