R语言学习总结

更新时间:2023-06-27 10:57:36 阅读: 评论:0

R语言学习总结
经过接近一个学期的学习,从对R语言的完全陌生,到现在对其有了一些粗浅的认识,其中经历了遇到困难苦思冥想的艰辛,也有解决问题以后豁然开朗的畅快。在学习的过程中,以前掌握的数理基础给我带来了不少便利,而认真地态度和踏实的性格也使我获益匪浅。
在这个学期中,我学会了R语言的基本操作和语法,以及针对具体的统计学问题相应的解决方法。并按时完成老师布置的课后作业,以达到学以致用的目的,也加强了对R语言操作的熟练度。
一、初识R软件
R软件是一套完整的数据处理、计算和制图软件系统。其功能包括:据存储和处理,数组运算,完整连贯的统计分析工具,优秀的统计制图功能已及简便而强大编程语言。
接触R语言以后,我的第一感觉就是方便和强大。R语言中有非常多的函数和包,我们几乎不用自己去编一些复杂的算法,而往往只需要短短几行代码就能解决很复杂的问题,这给我们的使用带来了极大地方便;于此同时,它又可操纵数据的输入输出,实习分支、循环,使用
者可以自定义功能,这就意味着当找不到合适的函数或包来解决所遇的问题时,我们又可以自己编程去实现各种具体功能,这也正是R语言的强大之处。
二、学习心得
在学习该书的过程中,我不仅加深了对统计学方法的理解,同时也掌握了R软件的编程方法和基本技巧,了解了各种函数的意义和用法,并能把两者结合起来,解决实际中的统计问题。
1R语言的基本语法及技巧
R语言不仅可以进行基础的数字、字符以及向量的运算,内置了许多与向量运算有关的函数。而且还提供了十分灵活的访问向量元素和子集的功能。R语言中经常出现数组,它可以看作是定义了维数(dim属性)的向量。因此数组同样可以进行各种运算,以及访问数组元素和子集。二维数组(矩阵)是比较重要和特殊的一类数组,R可以对矩阵进行内积、外积、乘法、求解、奇异值分解及最小二乘拟合等运算,以及进行矩阵的合并、拉直等。apply()函数可以在对矩阵的一维或若干维进行某种计算,例如apply(A,1,mean)表示对A按行求和。
R语言允许将不同类型的元素放在一个集合中,这个集合叫做一个列表,列表元素总可以用列表名[[下标]]”的格式引用。而列表名[下标]”表示的是一个子列表,这是一个很容易混淆的地方。R语言中非常重要的一种数据结构是data.frame(数据框),它通常是矩阵形式的数据,但每列可以是不同类型,数据框每列是一个变量,每行是一个观测,要注意的是每一列必须有相同的长度。数据框元素可以使用下标或者下标向量引用。
用一个非常简单的例子来说明向量、矩阵和数据框的简单运用。
输入:
A<-matrix(c(1:12),2,6,byrow=T) #A为一个26列,按行排列的矩阵 X<-as.data.frame(A) #A转化成数据框形式的X
X[1:2,q(1,5,2)] #输出X的第12行和13阿尔巴尼亚语5出国行李箱
输出:
V1 V3 V5
1 1 3 5
2 7 9 11
输入:
attach(X);R<-V1/V5;R #调用数据框X,计算并输出V1V5的比值
输出:
[1] 0.2000000 0.6363636
与此同时R语言中也提供了其它高级程序语言共有的分支、循环等程序控制结构。比如if/el语句,for循环等。因此R点球成金下载语言也可以很容易的根据情况编写自己所需要的函数。
例:编写一个R程序,输入一个整数n,如果n小于等于0,中止运算,并输出:要求输入一个正整数;否则,如果n是偶数,则将n2赋值给n;否则将3n+1赋给n。不断循环,直到n=1停止,并输出:运算成功
解:新建一个程序脚本,名为chapter2.R”,写入代码:
f<-function(n){
if(n<=0) list("要求输入一个正整数")
el{repeat{
if(n==1) break #n=1时终止 el if(n/2==as.integer(n/2)) n<-n/2 #n为偶数时除2 el n<-3*n+1
}
list("运算成功")
}
}
R窗口中
输入:
Source(“chapter2.R”);f(32)
输出:
[1] "运算成功"
输入:
lonely是什么意思f(-5)
输出:
[1] "要求输入一个正整数"
2R在统计描述中的应用
数据框操作(plyr包)
辅助小函数
1 splat函数:
作用:把原函数中多个参数打包为一个list作为参数,然后输出新的函数。也就是说本来某个函数需要输入多个参数,现在套上splat后,只要输入一个参数list就可以了,不需要单独地输入参数。它的作用结果是把一个函数变成一个新函数。
m*ply(a_matrix, FUN)的作用和ravea*ply(a_matrix1splat(FUN))一样
:
1)参数使用
> hp_per_cyl<-function(hp,cyl,...) hp/cyl
> splat(hp_per_cyl)(mtcars[1,])
1] 18.33333
> splat(hp_per_cyl)(mtcars)c est
[1] 18.33333 18.33333 23.25000 18.33333 21.87500 17.50000 30.62500 15.50000 23.75000
[10] 20.50000 20.50000 22.50000 22.50000 22.50000 25.62500 26.87500 28.75000 16.50000
[19] 13.00000 16.25000 24.25000 18.75000 18.75000 30.62500 21.87500 16.50000 22.75000
[28] 28.25000 33.00000 29.16667 41.87500 27.25000
等价于:
> hp_per_cyl(mtcars$hp,mtcars$cyl)
splat函数的优点就是可以不用拆分字段,可以一起输入作为参数。
2cofounder)与plyr函数合用:
> f<-function(mpg,wt,...) data.frame(mw=mpg/wt)
> ddply(mtcars,.(cyl),splat(f))
2 each函数
作用:把多个函数汇聚成一个函数,当使用这个函数时,将分别作用多个函数。它的作用结果是把一个函数变成一个新函数。
不足:不能给作用的函数指定附加参数,只能使用默认参数。
:
> fun<-function(x) c(min=min(x),max=max(x),mean=mean(x))
> fun(1:10)
等价于:
> f<-each(min,max,mean)
> f(1:10)
3 colwi函数
colwi(.fun,.cols,...)                                     
说明:.fun:要转化的函数;.cols是测试数据框的列是否应包含的判别函数或者是·要包含的列的名称。
catcolwi(.fun,...)  colwi功能类似,只是对离散型变量有效
numcolwi(.fun,...)  colwi功能类似,只是对数值型变量有效
作用:把作用于数据框行向量的函数(如meanmedian等)转化为作用于数据框列向量的函数。于plyr函数一起使用十分方便。作用结果生成一个新的函数。
例:
> nmissing<-function(x) sum(is.na(x))
> colwi(nmissing)(baball)
> colwi(nmissing,.(sb,cs,so))(baball)
> ddply(baball,.(year),colwi(nmissing,.(sb,cs,so)))
> numcolwi(nmissing)(baball)
等价于:colwi(nmissing,is.numeric)(baball)
> catcolwi(nmissing)(baball)
等价于colwi(nmissing,is.discrete)(baball)
4 failwith函数
failwith(default=NULL, f, quiet=FALSE)
  作用:修正一个函数,使得当该函数出现错误时返回一个设定的默认值,默认为空。作用结果生成一个新的函数。
 
> f<-function(x) if (x==1) stop("Error") el 1
> f(1)
Error in f(1) : Error
> safef<-failwith(,f)
> safef(1)
Error in f(...) : Error
NULL
  > safef<-failwith(12,f,quiet=TRUE)
> safef(1)
[1] 12
5 summari()函数
summari(.data, ...)
  作用:对数据框做统计汇总,为设定的统计方法或函数
  joyful例:
>summari(baball,duration=max(year)-min(year),nteams=length(unique(team)))
  duration nteams
1      136    132
>head(ddply(baball,"id",summari,duration=max(year)-min(year),nteams=length(unique(team))))
人鱼传说主题曲        id duration nteams
1 aaronha01      22      3
2 abernte02      17      7
3 adairje01      12      4
4 adamsba01      20      2
5 adamsbo03      13      4
6 adcocjo01      16      5
数据集变量操作
1 变量排序:starearrange函数
arrange(df, .(var1), .(var2)…)

本文发布于:2023-06-27 10:57:36,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/159310.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   数据   向量   参数   语言   作用   使用   运算
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图