R语言实验二
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
R语言实验二
实验2 R基础(二)
一、实验目的:
1.掌握数字与向量的运算;
2.掌握对象及其模式与属性;
3.掌握因子变量;
4.掌握多维数组和矩阵的使用。
二、实验内容:
1.完成教材例题;
2.完成以下练习。
练习:
要求:①完成练习并粘贴运行截图到文档相应位置(截图方法见下),并将所有自己输入文字的字体颜色设为红色(包括后面的思考及小结),②回答思考题,③简要书写实验小结。④修改本文档名为“本人完整学号姓名1”,其中1表示第1次实验,以后更改为2,3,...。如文件名为“1305543109张立1”,表示学号为1305543109的张立同学的第1次实验,注意文件名中没有空格及任何其它字符。最后连同数据文件、源程序
文件等(如果有的话),一起压缩打包发给课代表,压缩包的文件名同上。
截图方法:
法1:调整需要截图的窗口至合适的大小,并使该窗口为当前激活窗口(即该窗口在屏幕最前方),按住键盘Alt键(空格键两侧各有一个)不放,再按键盘右上角的截图键(通常印有“印屏幕”或“Pr Scrn”等字符),即完成截图。再粘贴到word文档的相应位置即可。
法2:利用QQ输入法的截屏工具。点击QQ输入法工具条最右边的“扳手”图标,选择其中的
“截屏”工具。)
1.自行完成教材P58页
2.2-2.5节中的例题。
2.(习题2.1)建立一个R文件,在文件中输
入变量x = (1,2,3)T,y = (4,5,6)T,并
作以下运算
(1)计算z = 2x + y + e,其中e = (1,1,
1)T;
(2)计算x与y的内积;
(3)计算x与y的外积。
解:源代码:
(1)x<-c(1,2,3)
y<-c(4,5,6)
e<-c(1,1,1)
z=2*x+y+e
z1=crossprod(x,y) #z1为x与y的内积或者x%*%y
z2=tcrossprod(x,y) #z2为x与y的外积或者x%o%y
z;z1;z2
(2) x<-c(1,2,3)
y<-c(4,5,6)
e<-c(1,1,1)
z=2*x+y+e
z1= x%*%y
z2=x%o%y
z;z1;z2
运行截图:
3.(习题2.2)将1,2,…,20构成两个4×5阶的矩阵,其中矩阵A是按列输入,矩阵B是按行输入,并作如下运算
(1)C = A + B;(相对应的数相加)
(2) D = AB T;
(3)E = (e ij )4×5,其中e ij = a ij·b ij;(相
对应的数相乘)
(4)F是由A的前3行和前3列构成的矩
阵;
(5)G是由矩阵B的各列构成的矩阵,但
不含B的第3列。
解:源代码:
A<-matrix(1:20,c(4,5));A # A<-matrix(1:20,nrow=4,byrow=F);A/
A<-matrix(1:20,nrow=4);A # A<-matrix(1:20,ncol=5);A #
A<-matrix(1:20,ncol=5,byrow=F);A
B<-matrix(1:20,nrow=4,byrow=TRUE);B C=A+B;C
D<-A%*%t(B);D
E=A*B;E
F<-A[1:3,1:3];F
G<-B[,-3];G
运行截图:
D:第一个数175=1*1+5*2+9*3+13*4+17*5 400=1*6+5*7+9*8+13*9+17*10
类似……..
4.(习题2.3)构造一个向量x,向量是由5
个1,3个2,4个3和2个4构成,注意用
到rep()函数。
解:源代码:
x<-c(rep(1,times=5),rep(2,times=3),rep(3,ti
mes=4),rep(4,times=2)); x
x<-c(rep(1,5),rep(2,3),rep(3,4),rep(4,2));x
运行截图:
思考:(以下题目请先进行笔算后,再在R中运
算核对)
1.c(1,4)*c(2,3)的输出结果是什么?
[1] 2 12
2.matrix(1:2,ncol=2,nrow=2)的输出结果是什
么?(重复)
[,1] [,2]
[1,] 1 1
[2,] 2 2
3.vec<- c(2,4,6,8,10); vec[2]; vec[-2]的输出结
果是什么?(找到相对应下标的数,负数表
示去掉)
[1] 4
[1] 2 6 8 10
4.测量得到了5位男士的体重和身高的数据
如下:
体重(kg):60, 75, 65, 68, 70
身高(cm):170, 180, 165, 172, 178
分别存储在向量weight和height中。若想
得到那些身高超过170cm的男士的体重数
据,请写出相应的R代码。
weight<-c(60, 75, 65, 68, 70)
height<-c(170, 180, 165, 172, 178)
weight[height>170]
运行截图:
5.下面这一命令的输出结果是什么?
Mat<-matrix(1:12,nrow=4,byrow=TRUE);
Mat[3,];Mat[2,2:3]
[1] 7 8 9
[1] 5 6
6.apply()函数与tapply()函数有什么区别?
apply()是针对数组其一维(或若干维)进行
某种运算;
tapply()是针对向量中的数据进行分组处
理,而非对整体数据进行处理。
三、实验小结(必写,但字数不限)
首先需熟悉数字、向量、因子变量和多维数组和矩阵相对应的运算函数,理解和熟记相对应的函数,一道题中的源代码可能某部分有多种写法,选择简单适合的源代码,学会举一反三,最后要掌握相似函数的区别。