实验二常用统计量的计算与统计表的绘制第一节实验目的1.了解R中基本数据类型,会创建相应的R对象。2.学会计算常用的统计量,了解相应的R函数。3.学会制作常用统计图表的R函数。第二节R中的数据类型在R中,数据的基本格式主要有向量、矩阵、数据框和列表等。一、向量向量即为一维的数值型、字符型或逻辑型数据的一维数组。创建向量时必须保证其所有元素为一样的模式。在R中可通过c()、seq()和rep()三种函数来创建向量。c是concatenate的简写,表示链接、串联的意思。例2.1用c()函数创建数值型向量a=(10.4,5.63.1,4,3.2),创建字符型向量b=(名字,性别,成绩),逻辑性向量c=(TRUETRUEFALSEFALSE)。解:R中计算过程如下:>a<-c(10.4,5.6,3.1,4,3.2)>a运行结果如下:[1]10.45.63.14.03.2>b<-c("名字""性别""成绩")>b运行结果如下:[1]"名字""性别""成绩">c<-c(T,T,F,F)>c运行结果如下:[] TRUETRUEFALSEFALSEseq是sequence的简写,用来创建等差序列的向量。例2.2用seq()函数创建向量d=(345678),向量e=(246810121416)。解:R中计算过程如下:>d<-seq(3,8)>d19
19 实验二 常用统计量的计算与统计表的绘制 第一节 实验目的 1. 了解 R 中基本数据类型,会创建相应的 R 对象。 2. 学会计算常用的统计量,了解相应的 R 函数。 3. 学会制作常用统计图表的 R 函数。 第二节 R 中的数据类型 在 R 中,数据的基本格式主要有向量、矩阵、数据框和列表等。 一、向量 向量即为一维的数值型、字符型或逻辑型数据的一维数组。创建向量时必须 保证其所有元素为一样的模式。在 R 中可通过 c( )、seq( )和 rep( )三种函数来创 建向量。c 是 concatenate 的简写,表示链接、串联的意思。 例 2.1 用 c( )函数创建数值型向量a = (10.4, 5.6, 3.1, 4, 3.2),创建字符型向量 b = (名字,性别,成绩),逻辑性向量c = (TRUE TRUEFALSE FALSE)。 解:R 中计算过程如下: > a<- c(10.4, 5.6, 3.1, 4, 3.2) > a 运行结果如下: [1] 10.4 5.6 3.1 4.0 3.2 > b<-c("名字","性别","成绩") > b 运行结果如下: [1] "名字" "性别" "成绩" > c<-c(T,T,F,F) > c 运行结果如下: [1] TRUETRUE FALSE FALSE seq 是 sequence 的简写,用来创建等差序列的向量。 例 2.2 用 seq( )函数创建向量d = (3 4 5 6 7 8),向量e = (2 4 6 8 10 12 14 16)。 解:R 中计算过程如下: > d<-seq(3,8) > d
运行结果如下:[1]345678>e<-seq(2,16,by=2)>e运行结果如下:[1] 246810121416rep是repeat的简写,用来创建产生重复值的向量。例2.3用rep()函数创建向量f=(12341234),向量g=(11223344),向量h=(1223334444)解:R中计算过程如下:>f<-rep(1:4,times=2)#向量重复两次连接>f运行结果如下:[1]12341234>g<-rep(1:4,each=2)#向量中每个元素依次重复两遍连接>g运行结果如下:[1]11223344>rep(1:4,c(1:4))#向量中每个元素依次重复1到4遍运行结果如下:[1]1223334444例2.4向量x=(13568),向量y=(247113),计算(1)2y;(2)x+y;(3)x-y.解:R中计算过程如下:>x=c(1,3,5,6,8)>y=c(2,4,7,11,3)>y*2运行结果(1)如下:[1]481422>x+y运行结果(2)如下:[1] 37121711>x-y20
20 运行结果如下: [1] 3 4 5 6 7 8 > e<-seq(2,16,by=2) > e 运行结果如下: [1] 2 4 6 8 10 12 14 16 rep 是 repeat 的简写,用来创建产生重复值的向量。 例 2.3 用 rep( )函数创建向量f = (1 2 3 4 1 2 3 4),向量g = (1 1 2 2 3 3 4 4), 向量 h = (1 2 2 3 3 3 4 4 4 4)。 解:R 中计算过程如下: > f <- rep(1:4, times = 2) #向量重复两次连接 > f 运行结果如下: [1] 1 2 3 4 1 2 3 4 > g<- rep(1:4, each = 2) #向量中每个元素依次重复两遍连接 > g 运行结果如下: [1] 1 1 2 2 3 3 4 4 > rep(1:4,c(1:4)) #向量中每个元素依次重复 1 到 4 遍 运行结果如下: [1] 1 2 2 3 3 3 4 4 4 4 例2.4向量x = (1 3 5 6 8 ),向量y = (2 4 7 11 3),计算(1)2y;(2)x + y;(3) x − y。 解:R 中计算过程如下: > x=c(1,3,5,6,8) > y=c(2,4,7,11,3) > y*2 运行结果(1)如下: [1] 4 8 14 22 6 > x+y 运行结果(2)如下: [1] 3 7 12 17 11 > x-y
运行结果(3)如下:[1]-1-1-2 -55二、矩阵矩阵是带有维度的向量,和向量一样有数值型、字符型或逻辑型数据,同时也要求其每个元素具有相同的类型。创建矩阵的一般常用的方法是使用matrix函数,其基本格式为:matrix(data,nrow=,ncol=,byrow=FALSE,dimmames=NULL)[15912[134512610及B=例2.5用matrix()函数创建矩阵A7689103711[11 12131415[4812]解:R中计算过程如下:>A<-matrix(1:12,nrow=4,ncol=3,byrow=FALSE)#默认情况下,矩阵按列填充>A运行结果(1)如下:[,1] [,2] [,3]59[1,] 12610[2,] 3711[3,] 4812[4,] > B<-matrix(1:15, nrow=3,ncol=5,byrow=TRUE)>B运行结果(2)如下:[,1] [,2] [,3] [,4] [,5]213X5[1,]6789[2,] 101112131415[3,] 我们可以使用下标和方括号来选择矩阵的某行、某列、或某元素。A[i,1指矩阵A中的第i行,ALi指矩阵A中的第j列,A[i,j指位于矩阵A中的第i行第j列的元素,当要选择多行或多列时,下标和可以为数值型向量。例2.6选择例2.4中矩阵A第三行第二列元素,矩阵A第一列元素,矩阵B的第二行元素,矩阵B的第四列和第五列元素。解:R中计算过程如下:>A[3,2]#注意必须要用方括号[1] 721
21 运行结果(3)如下: [1] -1 -1 -2 -5 5 二、矩阵 矩阵是带有维度的向量,和向量一样有数值型、字符型或逻辑型数据,同时 也要求其每个元素具有相同的类型。创建矩阵的一般常用的方法是使用 matrix 函数,其基本格式为: matrix(data,nrow=,ncol=,byrow=FALSE,dimmames=NULL) 例 2.5 用 matrix( )函数创建矩阵A = [ 1 2 3 5 9 6 10 7 11 4 8 12 ]及B = [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]。 解:R 中计算过程如下: > A<- matrix(1:12, nrow=4, ncol=3,byrow=FALSE) #默认情况下,矩阵按列填 充 > A 运行结果(1)如下: [,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 > B<-matrix(1:15, nrow=3,ncol=5,byrow=TRUE) > B 运行结果(2)如下: [,1] [,2] [,3] [,4] [,5] [1,] 1 2 3 4 5 [2,] 6 7 8 9 10 [3,] 11 12 13 14 15 我们可以使用下标和方括号来选择矩阵的某行、某列、或某元素。A[i,]指矩 阵A中的第i行,A[, j]指矩阵A中的第j列,A[i, j]指位于矩阵A中的第i行第j列的元 素,当要选择多行或多列时,下标i和j可以为数值型向量。 例 2.6 选择例 2.4 中矩阵A第三行第二列元素,矩阵A第一列元素,矩阵B的 第二行元素,矩阵B的第四列和第五列元素。 解:R 中计算过程如下: > A[3,2] #注意必须要用方括号 [1] 7
>A[,1][1]123 4>B[2,][]678910>B[,c(4,5)][,1] [,2][1,] 45[2,] 9101415[3,] 217[11111例2.7已知矩阵D=1 3-1,F=1,求(1)矩阵D的转置;(2)-11124]1]¥1L1-1D+F;(3)D-F;(4)-3D:(5)DF(6)DF的特征值、特征向量;(7)D的行列式;(8)D的逆矩阵。解:R中计算过程如下:>D=matrix(c(1,2,1,1,3,-1,2,1,4),nrow=3,byrow=T)>D[,1] [,2] [,3]2[1,]11[2,] 13-1214[3,]> F=matrix(c(1,1,1,-1,1,1,1,-1,1),nrow=3,byrow=T)>F[,1] [,2] [,3][1,] 111[2,] -1111[3,] 1-1>t(D)运行结果其(1)如下:[,1] [,2] [,3]2[1,] 1¥1231[2,] [3,] 1-14>D+F运行结果(2)如下:[,1] [,2] [,3]232[1,][2,] 040305[3,]>D-F运行结果(3)如下:[,1] [,2] [,3]22
22 > A[,1] [1] 1 2 3 4 > B[2,] [1] 6 7 8 9 10 > B[,c(4,5)] [,1] [,2] [1,] 4 5 [2,] 9 10 [3,] 14 15 例 2.7 已知矩阵D = [ 1 2 1 1 3 −1 2 1 4 ],F = [ 1 1 1 −1 1 1 1 −1 1 ],求(1)矩阵 D 的转置;(2) D + F;(3)D − F;(4)−3D;(5)DF(6)DF的特征值、特征向量;(7)D的 行列式;(8)D的逆矩阵。 解:R 中计算过程如下: > D=matrix(c(1,2,1,1,3,-1,2,1,4),nrow=3,byrow=T) > D [,1] [,2] [,3] [1,] 1 2 1 [2,] 1 3 -1 [3,] 2 1 4 > F=matrix(c(1,1,1,-1,1,1,1,-1,1),nrow=3,byrow=T) > F [,1] [,2] [,3] [1,] 1 1 1 [2,] -1 1 1 [3,] 1 -1 1 > t(D) 运行结果(1)如下: [,1] [,2] [,3] [1,] 1 1 2 [2,] 2 3 1 [3,] 1 -1 4 > D+F 运行结果(2)如下: [,1] [,2] [,3] [1,] 2 3 2 [2,] 0 4 0 [3,] 3 0 5 > D-F 运行结果(3)如下: [,1] [,2] [,3]
[1,] 01022[2,] -2213[3] >-3*D运行结果(4)如下:[,1] [,2] [,3]-3-6-3[1,]3-3-9[2,] [3,] -6-3-12>D%*%F运行结果(5)如下:[,1] [,2] [,3] 024[1,] -353[2,] 7[3,] 5-1>eigen(D%*%F)运行结果(6)如下:eigendecomposition$'values'[1] 9.203358333.3202462-0.5236045$vectors[,1] [,2] [,3][1,] -0.43417730.3263422-0.7042526[2,]-0.29708550.9255675-0.5938258[3]-0.8504295-0.19189970.3891004>det(D)运行结果(7)如下:[1] -4> solve(D)运行结果(8)如下:[,]][2][,3][1,]-3.251.751.25[2,] 1.50-0.50 -0.50[3,]1.25-0.75-0.2523
23 [1,] 0 1 0 [2,] 2 2 -2 [3,] 1 2 3 > -3*D 运行结果(4)如下: [,1] [,2] [,3] [1,] -3 -6 -3 [2,] -3 -9 3 [3,] -6 -3 -12 > D%*%F 运行结果(5)如下: [,1] [,2] [,3] [1,] 0 2 4 [2,] -3 5 3 [3,] 5 -1 7 > eigen(D%*%F) 运行结果(6)如下: eigen() decomposition $`values` [1] 9.2033583 3.3202462 -0.5236045 $vectors [,1] [,2] [,3] [1,] -0.4341773 0.3263422 -0.7042526 [2,] -0.2970855 0.9255675 -0.5938258 [3,] -0.8504295 -0.1918997 0.3891004 > det(D) 运行结果(7)如下: [1] -4 > solve(D) 运行结果(8)如下: [,1] [,2] [,3] [1,] -3.25 1.75 1.25 [2,] 1.50 -0.50 -0.50 [3,] 1.25 -0.75 -0.25