R语言读书报告心得.docx
- 文档编号:17598001
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:18
- 大小:152.52KB
R语言读书报告心得.docx
《R语言读书报告心得.docx》由会员分享,可在线阅读,更多相关《R语言读书报告心得.docx(18页珍藏版)》请在冰点文库上搜索。
R语言读书报告心得
统计软件R语言:
期末报告
1、R语言特点,学习心得及学习技巧
相对于其他统计软件,R语言具有以下特点,或者说是优点:
其一,免费免费免费,重要内容说三次!
R语言是一个免费的自由软件,它有UNIX、LINUX、MacOS和WINDOWS版本,都是可以免费下载和使用的。
可以这样说,不管你用的电脑操作系统如何,对于R语言来说都是没有影响,也就是说,R语言可以说是所有统计软件中最容易获取的;
其二,各式安装包任君选择!
R语言的使用,很大程度上是借助各种各样的R包的辅助,从某种程度上讲,R包就是针对于R的插件,不同的插件满足不同的需求,截至2013年3月6日,CRAN已经收录了各类包4338个。
例如用于经济计量、财经分析、人文科学研究以及人工智能。
也就是说,基本你所需要的操作都有对应的安装包来实现,在需要的时候下载即可,极大的减轻了电脑内存负担;
其三,R的互动性很强。
图形输出是在另外的窗口处输出,它的输入输出窗口可以在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要;
最后也最重要的,数据可视化的功能及其强大,即使是非常复杂的数据,也有图形来实现可视化,比如lattice图像,输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。
而经过半个学期的学习,特别是老师后期着重强调的R语言的核心,函数编写功能,在R语言的学习路上,终于可以窥见冰山一角。
R语言是一个很强大的软件,它提供各种用于分析和理解数据的方法,从最基础到最前沿的,无所不包,遗憾的是我们的课程没有课本,只有课件,限制了学习的程度。
在接触了R语言之后,我购买了人民邮电出版社出版的《R语言实战》一书,希望能系统提高自己在R语言上的运用技巧。
最后,感谢老师这一学期的辛苦教导啦!
2、导入“概率统计期末成绩”数据,编写代码完成以下任务:
>tsy01=read.csv(file.choose(),header=T)#读取数据,输入相应名称可以显示数据
(1)计算各班平均分,标准差,中位点,极差,偏度,峰度,并做比较。
一班:
>a1=which(tsy01[,2]==1)
>summary(tsy01[a1,3])#该函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计
Min.1stQu.MedianMean3rdQu.Max.
6.0062.0085.5074.2894.00100.00
>s1=sd(tsy01[a1,3])#求标准差
>s1
[1]25.98807
>R1=max(tsy01[a1,3])-min(tsy01[a1,3])
>R1
[1]94
>n1=length(tsy01[a1,3])
>m1=mean(tsy01[a1,3])
>b1=(1/n1)*sum(((tsy01[a1,3])-m1)^3)
>c1=(1/n1)*sum(((tsy01[a1,3])-m1)^2)
>d1=(1/n1)*sum(((tsy01[a1,3])-m1)^4)
>sk1=b1/(c1^(3/2))
>sk1
[1]-1.081116
>ku1=d1/(c1^2)-3
>ku1
[1]0.0957357
二班:
>a2=which(tsy01[,2]==2)
>summary(tsy01[a2,3])#该函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计
Min.1stQu.MedianMean3rdQu.Max.
0.0069.5078.0073.0491.50100.00
>s2=sd(tsy01[a2,3])#求标准差
>s2
[1]26.19417
>R2=max(tsy01[a2,3])-min(tsy01[a2,3])
>R2
[1]100
>n2=length(tsy01[a2,3])
>m2=mean(tsy01[a2,3])
>b2=(1/n2)*sum(((tsy01[a2,3])-m2)^3)
>c2=(1/n2)*sum(((tsy01[a2,3])-m2)^2)
>d2=(1/n2)*sum(((tsy01[a2,3])-m2)^4)
>sk2=b2/(c2^(3/2))
>sk2
[1]-1.44899
>ku2=d2/(c2^2)-3
>ku2
[1]1.427493
三班:
>a3=which(tsy01[,2]==3)
>summary(tsy01[a3,3])
Min.1stQu.MedianMean3rdQu.Max.
0.0066.5081.5072.6490.0099.00
>s3=sd(tsy01[a3,3])#球标准差
>s3
[1]25.05448
>R3=max(tsy01[a3,3])-min(tsy01[a3,3])
>R3
[1]99
>n3=length(tsy01[a3,3])
>m3=mean(tsy01[a3,3])
>b3=(1/n3)*sum(((tsy01[a3,3])-m3)^3)
>c3=(1/n3)*sum(((tsy01[a3,3])-m3)^2)
>d3=(1/n3)*sum(((tsy01[a3,3])-m3)^4)
>sk3=b3/(c3^(3/2))
>sk3
[1]-1.45291
>ku3=d3/(c3^2)-3
>ku3
[1]1.149064
四班:
>a4=which(tsy01[,2]==4)
>summary(tsy01[a4,3])#该函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计
Min.1stQu.MedianMean3rdQu.Max.
0.0052.5068.0066.3780.50100.00
>s4=sd(tsy01[a4,3])
>s4
[1]19.61564
>R4=max(tsy01[a4,3])-min(tsy01[a4,3])
>R4
[1]100
>n4=length(tsy01[a4,3])
>m4=mean(tsy01[a4,3])
>b4=(1/n4)*sum(((tsy01[a4,3])-m4)^3)
>c4=(1/n4)*sum(((tsy01[a4,3])-m4)^2)
>d4=(1/n4)*sum(((tsy01[a4,3])-m4)^4)
>sk4=b4/(c4^(3/2))
>sk4
[1]-0.4474207
>ku4=d4/(c4^2)-3
>ku4
[1]0.3914338
(2)对各班成绩做直方图,添加密度曲线。
>x1=tsy01[a1,3]#代表一班分数
>x2=tsy01[a2,3]#代表二班分数
>x3=tsy01[a3,3]#代表三班分数
>x4=tsy01[a4,3]#代表四班分数
>op=par(mfrow=c(2,2))
>hist(x1,breaks=5,main="1班",freq=F,density=1,col=1)
>lines(density(x1),col='red')
>hist(x2,breaks=5,main="2班",freq=F,density=1,col=4)
>lines(density(x2),col='red')
>hist(x3,breaks=5,main="3班",freq=F,density=1,col=3)
>lines(density(x3),col='red')
>hist(x4,breaks=5,main="4班",freq=F,density=1,col=8)
>lines(density(x4),col='red')
>par(op)
(3)假设各班成绩均服从正态分布,估计四个正态分布的期望和方差,计算四个班各自的不及格率与优秀率(大于85分);以及理论25%与75%分位点。
一班:
>x1=tsy01[a1,3]
>me1=mean(x1)#一班分数均值,以下类推
>me1
[1]74.28125
>sd1=s1^2#一班分数方差,以下类推
>sd1
[1]675.38
二班
>x2=tsy01[a2,3]
>me2=mean(x2)
>me2
[1]73.04478
>sd2=s2^2
>sd2
[1]686.1343
三班:
>x3=tsy01[a3,3]
>me3=mean(x3)
>me3
[1]72.63889
>sd3=s3^2
>sd3
[1]627.7269
四班:
>x4=tsy01[a4,3]
>me4=mean(x4)
>me4
[1]66.37349
>sd4=s4^2
>sd4
[1]384.7734
优秀率与不优秀率
>x1=tsy01[a1,3]#一班的分数,以下类推
>x2=tsy01[a2,3]
>x3=tsy01[a3,3]
>x4=tsy01[a4,3]
>qh=function(X){k1=0
+n=length(X)
+for(iin1:
n){if(X[i]<60)
+{k1=k1+1}
+}
+return(k1/n)
+}
>qh(x1)#一班不合格率,以下类推
[1]0.25
>qh(x2)
[1]0.1940299
>qh(x3)
[1]0.2083333
>qh(x4)
[1]0.373494
>ph=function(X){k2=0
+n=length(X)
+for(iin1:
n){if(X[i]>85)
+{k2=k2+1}
+}
+return(k2/n)
+}
>ph(x1)#一班优秀率,以下类推
[1]0.5
>ph(x2)
[1]0.4029851
>ph(x3)
[1]0.4027778
>ph(x4)
[1]0.1807229
>
理论25%与75%位点
>quantile(x1)#一班分数四分点,以下类推
0%25%50%75%100%
6.062.085.594.0100.0
>quantile(x2)
0%25%50%75%100%
0.069.578.091.5100.0
>quantile(x3)
0%25%50%75%100%
0.066.581.590.099.0
>quantile(x4)
0%25%50%75%100%
0.052.568.080.5100.0
(4)以60,70,85为界,将成绩分为“优秀”、“中等”、“及格”、“不及格”四类,改写数据,并做饼图和列联表(table()或ftable())进行比较分析。
>A1=which(tsy01[,3]>85)
>tsy01[A1,3]="优秀"
>A2=which(tsy01[,3]>70&tsy01[,3]<=85)
>tsy01[A2,3]="中等"
>A3=which(tsy01[,3]>=60&tsy01[,3]<=70)
>tsy01[A3,3]="及格"
>A4=which(tsy01[,3]<60)
>tsy01[A4,3]="不及格"
>attach(tsy01)
>score#呈现改写数据
[1]"不及格""不及格""优秀""优秀""优秀""优秀""不及格""优秀"
[9]"优秀""优秀""中等""优秀""优秀""及格""中等""优秀"
[17]"不及格""优秀""优秀""优秀""不及格""优秀""优秀""及格"
[25]"优秀""优秀""及格""不及格""不及格""优秀""及格""及格"
[33]"优秀""优秀""优秀""优秀""不及格""中等""不及格""优秀"
[41]"不及格""不及格""不及格""不及格""不及格""中等""优秀""优秀"
[49]"优秀""及格""中等""中等""优秀""及格""不及格""优秀"
[57]"及格""中等""优秀""不及格""中等""优秀""优秀""优秀"
[65]"优秀""中等""优秀""优秀""中等""不及格""及格""优秀"
[73]"中等""中等""不及格""优秀""优秀""及格""优秀""优秀"
[81]"不及格""中等""优秀""不及格""中等""优秀""及格""中等"
[89]"优秀""不及格""及格""中等""中等""中等""优秀""优秀"
[97]"优秀""及格""中等""优秀""中等""不及格""不及格""不及格"
[105]"优秀""优秀""不及格""中等""不及格""优秀""中等""优秀"
[113]"优秀""及格""优秀""优秀""中等""中等""中等""不及格"
[121]"不及格""优秀""优秀""中等""不及格""优秀""中等""优秀"
[129]"中等""优秀""中等""中等""优秀""不及格""不及格""不及格"
[137]"及格""优秀""中等""优秀""中等""优秀""优秀""优秀"
[145]"优秀""不及格""优秀""优秀""优秀""优秀""不及格""中等"
[153]"及格""中等""及格""中等""优秀""中等""中等""优秀"
[161]"优秀""中等""优秀""及格""中等""不及格""不及格""不及格"
[169]"及格""中等""不及格""优秀""优秀""不及格""优秀""中等"
[177]"优秀""不及格""中等""不及格""及格""优秀""中等""优秀"
[185]"优秀""中等""优秀""中等""中等""不及格""优秀""中等"
[193]"优秀""中等""及格""优秀""中等""优秀""优秀""中等"
[201]"中等""优秀""不及格""不及格""中等""中等""及格""不及格"
[209]"及格""不及格""优秀""中等""中等""不及格""及格""优秀"
[217]"优秀""不及格""及格""不及格""优秀""不及格""优秀""中等"
[225]"不及格""优秀""优秀""中等""不及格""中等""优秀""中等"
[233]"中等""不及格""优秀""不及格""及格""不及格""不及格""中等"
[241]"中等""不及格""不及格""及格""不及格""中等""不及格""不及格"
[249]"及格""及格""不及格""优秀""中等""及格""优秀""优秀"
[257]"及格""不及格""不及格""中等""中等""优秀""及格""优秀"
[265]"及格""优秀""不及格""及格""及格""不及格""不及格""不及格"
[273]"中等""中等""不及格""中等""不及格""及格""不及格""不及格"
[281]"及格""中等""中等""不及格""不及格""中等"
>
>c1=ftable(class,score)
>c1
score不及格及格优秀中等
class
1168328
21362721
31472922
431161521
>op=par(mfrow=c(2,2))
>x1=tsy01[a1,3]#一班情况,以下类推
>x1
[1]"不及格""不及格""优秀""优秀""优秀""优秀""不及格""优秀"
[9]"优秀""优秀""中等""优秀""优秀""及格""中等""优秀"
[17]"不及格""优秀""优秀""优秀""不及格""优秀""优秀""及格"
[25]"优秀""优秀""及格""不及格""不及格""优秀""及格""及格"
[33]"优秀""优秀""优秀""优秀""不及格""中等""不及格""优秀"
[41]"不及格""不及格""不及格""不及格""不及格""中等""优秀""优秀"
[49]"优秀""及格""中等""中等""优秀""及格""不及格""优秀"
[57]"及格""中等""优秀""不及格""中等""优秀""优秀""优秀"
>y1=table(x1)
>pie(y1,main="1班")#一班图示,以下类推
>x2=tsy01[a2,3]
>x2
[1]"优秀""中等""优秀""优秀""中等""不及格""及格""优秀"
[9]"中等""中等""不及格""优秀""优秀""及格""优秀""优秀"
[17]"不及格""中等""优秀""不及格""中等""优秀""及格""中等"
[25]"优秀""不及格""及格""中等""中等""中等""优秀""优秀"
[33]"优秀""及格""中等""优秀""中等""不及格""不及格""不及格"
[41]"优秀""优秀""不及格""中等""不及格""优秀""中等""优秀"
[49]"优秀""及格""优秀""优秀""中等""中等""中等""不及格"
[57]"不及格""优秀""优秀""中等""不及格""优秀""中等""优秀"
[65]"中等""优秀""中等"
>y2=table(x2)
>pie(y2,main="2班")
>x3=tsy01[a3,3]
>x3
[1]"中等""优秀""不及格""不及格""不及格""及格""优秀""中等"
[9]"优秀""中等""优秀""优秀""优秀""优秀""不及格""优秀"
[17]"优秀""优秀""优秀""不及格""中等""及格""中等""及格"
[25]"中等""优秀""中等""中等""优秀""优秀""中等""优秀"
[33]"及格""中等""不及格""不及格""不及格""及格""中等""不及格"
[41]"优秀""优秀""不及格""优秀""中等""优秀""不及格""中等"
[49]"不及格""及格""优秀""中等""优秀""优秀""中等""优秀"
[57]"中等""中等""不及格""优秀""中等""优秀""中等""及格"
[65]"优秀""中等""优秀""优秀""中等""中等""优秀""不及格"
>y3=table(x3)
>pie(y3,main="3班")
>x4=tsy01[a4,3]
>x4
[1]"不及格""中等""中等""及格""不及格""及格""不及格""优秀"
[9]"中等""中等""不及格""及格""优秀""优秀""不及格""及格"
[17]"不及格""优秀""不及格""优秀""中等""不及格""优秀""优秀"
[25]"中等""不及格""中等""优秀""中等""中等""不及格""优秀"
[33]"不及格""及格""不及格""不及格""中等""中等""不及格""不及格"
[41]"及格""不及格""中等""不及格""不及格""及格""及格""不及格"
[49]"优秀""中等""及格""优秀""优秀""及格""不及格""不及格"
[57]"中等""中等""优秀""及格""优秀""及格""优秀""不及格"
[65]"及格""及格""不及格""不及格""不及格""中等""中等""不及格"
[73]"中等""不及格""及格""不及格""不及格""及格""中等""中等"
[81]"不及格""不及格""中等"
>y4=table(x4)
>pie(y4,main="4班")
>par(op)
>
3.、编写R函数,计算阶乘(不能使用函数prod()):
(1)基本要求:
当输入正整数n时,输出n!
(2)进阶要求:
在完成基本要求的基础上,对输入量进行检测,若输入量小于0或为非整数,则给出警告信息;若输入量为0,则输出1.
>tsy02=function(x){if(x%%1!
=0|x<0)stop("pleaseinputinteger!
!
")
+elseif(x==0)return
(1)
+else{n=length(x)
+n[1]=1
+for(iin2:
x){n[i]=i*n[i-1]}
+}
+return(n[x])
+}
>
>tsy02(5)
[1]120
4、编写R函数,计算一元函数在给定区间的定积分。
并以
为例,输出结果。
>tsy03=function(n,a,b,f){x=runif(n)
+sum((b-a)*f(a+(b-a)*x))/n
+}
>f=function(x){exp(-(x-3)^2)/8}
>tsy03(100,2,5,f)
[1]0.1931092
3)编写R函数,找出一元函数在给定区间何处取得最小值。
在区间[1,3]为例,输出结果。
(不能使用optimize()等既有函数)
>tsy04=function(n,a,b,f){
+x=seq(a,b,length.out=n)
+i=which.min(f(x))
+minx=a+(b-a)/n*i
+return(minx)
+}
>f=function(x){2/x+log(x)}
>tsy04(1000,1,3,f)
[1]2.002
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 读书 报告 心得