R语言实验二

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验2 R基础(二)

一、实验目的:

1.掌握数字与向量的运算;

2.掌握对象及其模式与属性;

3.掌握因子变量;

4.掌握多维数组和矩阵的使用。

二、实验内容:

1.完成教材例题;

2.完成以下练习。

练习:

要求:①完成练习并粘贴运行截图到文档相应位置(截图方法见下),并将所有自己输入文字的字体颜色设为红色(包括后面的思考及小结),②回答思考题,③简要书写实验小结。④修改本文档名为“本人完整学号姓名1”,其中1表示第1次实验,以后更改为2,3,...。如文件名为“09张立1”,表示学号为09的张立同学的第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,times=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()是针对向量中的数据进行分组处理,而非对整体数据进行处理。

相关文档
最新文档