略。
rep()函数创造向量 1,1,1,1,1,2,2,2,2,2
并将其命名为 x1。x1 <- rep(c(1,2),each=5)
x1
## [1] 1 1 1 1 1 2 2 2 2 2
rep()函数创造向量 1,2,1,2,1,2,1,2,1,2
并将其命名为 x2。x2 <- rep(c(1,2),times=5)
x2
## [1] 1 2 1 2 1 2 1 2 1 2
x1 和 x2 按列组合成矩阵
x.col,即 x1 和 x2 是
x 的两列。x.col <- cbind(x1,x2)
x.col
## x1 x2
## [1,] 1 1
## [2,] 1 2
## [3,] 1 1
## [4,] 1 2
## [5,] 1 1
## [6,] 2 2
## [7,] 2 1
## [8,] 2 2
## [9,] 2 1
## [10,] 2 2
x1 和 x2 按行组合成矩阵
x.row,即 x1 和 x2 是
x 的两行。x.row <- rbind(x1,x2)
x.row
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
## x1 1 1 1 1 1 2 2 2 2 2
## x2 1 2 1 2 1 2 1 2 1 2
x.row 的每一列的总和。apply(x.row,2,sum)
## [1] 2 3 2 3 2 4 3 4 3 4
colSums(x.row)
## [1] 2 3 2 3 2 4 3 4 3 4
1,2,..., 20
构成两个4*5的矩阵,其中矩阵A是按列输入,矩阵B是按行输入,并基于A和B生成如下矩阵C-H并输出:A <- matrix(1:20, nr = 4, nc = 5)
A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
B <- matrix(1:20, nr = 4, nc = 5, byrow = F)
B
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 5 9 13 17
## [2,] 2 6 10 14 18
## [3,] 3 7 11 15 19
## [4,] 4 8 12 16 20
1. C=A+B;
C <- A + B
C
## [,1] [,2] [,3] [,4] [,5]
## [1,] 2 10 18 26 34
## [2,] 4 12 20 28 36
## [3,] 6 14 22 30 38
## [4,] 8 16 24 32 40
2. D=AB^T (矩阵相乘:A乘以B的转置矩阵,提示:转置矩阵用t()函数);
D<-A%*%t(B)
D
## [,1] [,2] [,3] [,4]
## [1,] 565 610 655 700
## [2,] 610 660 710 760
## [3,] 655 710 765 820
## [4,] 700 760 820 880
3. E:第一列全为1,后面几列等于A矩阵;
E<-cbind(1,A)
E
## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 1 5 9 13 17
## [2,] 1 2 6 10 14 18
## [3,] 1 3 7 11 15 19
## [4,] 1 4 8 12 16 20
4. F1由A的前3行和前3列构成;(思考:为什么命名为F1而不是F?)
F1 <- A[1:3, 1:3]
F1
## [,1] [,2] [,3]
## [1,] 1 5 9
## [2,] 2 6 10
## [3,] 3 7 11
5. G是由矩阵B去除第3列构成的矩阵;
G <- B[,-3]
G
## [,1] [,2] [,3] [,4]
## [1,] 1 5 13 17
## [2,] 2 6 14 18
## [3,] 3 7 15 19
## [4,] 4 8 16 20
6. H是与A具有相同对角元素的对角阵。(提示:使用diag()函数)
H<-diag(diag(A))
H
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 0
## [2,] 0 6 0 0
## [3,] 0 0 11 0
## [4,] 0 0 0 16
func() 的函数,该函数有一个名为
lst 的参数。
lst
中具有奇数索引的每个元素。然后该函数应该返回这个新向量。func(c(4, 3, 7, 10, 11, -2)) 应返回向量
c(4, 7, 11)。func<-function(lst){
new_list = c()
for (i in 1:length(lst)){
if (i %% 2 != 0 ){
new_list = c(new_list,lst[i])
}
}
return(new_list)
}
func(c(4, 3, 7, 10, 11, -2))
## [1] 4 7 11
回顾概率论与数理统计中正态样本的均值参数的区间估计, 设\(x_1, \dots, x_n\)是来自正态均值为\(\mu\),标准差为\(\sigma\)的正态分布的一个样本,则μ的置信度为\(1-\alpha\)的95%置信区间为\([\bar x-1.96 s/\sqrt{n}, \bar x+1.96 s/\sqrt{n}]\).
(1). 按下列要求生成R函数: 函数名:takeCI; 输入: (1)数值型向量x,表示某正态样本的取值. 输出: 基于该样本得到的均值参数的置信度为95%的置信区间,以一个长度为2的向量输出。(提示:可用length(),mean(),sd()函数) (2). 从均值为10,标准差为1的正态分布中随机生成样本量n=20的一个样本\(x\)。基于此样本,用(1)中函数计算均值参数的95%置信区间并输出
takeCI<-function(x){
n<-length(x)
xbar<-mean(x)
l<-1.96*sd(x)/sqrt(n)
left<-xbar-l
right<-xbar+l
res<-c(left=left,right=right)
return(res)
}
x=rnorm(20,10,1)
takeCI(x)
## left right
## 9.640218 10.626624
本练习涉及波士顿住房数据集。 首先,加载波士顿数据集。
波士顿数据集是ISLR2库的一部分。 当然,您应该在使用前安装
ISLR2 包。 在 library(ISLR2)
之后,数据集包含在对象 Boston 中。
使用?Boston阅读有关数据集的信息。
library(ISLR2)
dim(Boston)
## [1] 506 13
数据集共506行,13列。
通过?Boston查看帮助文档得知,行代表Boston的506个不同地区,列代表不同的变量,包括人均犯罪率、面积超过25000平方英尺的住宅比例等。
chas是定性变量,其余为定量变量。qualitative variable指定性变量,又名分类变量、虚拟变量或哑变量(dummy variable)。在帮助文档中,仅chas的定义为dummy variable。
range()函数来回答这个问题。apply(Boston[,-4],2,range)
## crim zn indus nox rm age dis rad tax ptratio lstat medv
## [1,] 0.00632 0 0.46 0.385 3.561 2.9 1.1296 1 187 12.6 1.73 5
## [2,] 88.97620 100 27.74 0.871 8.780 100.0 12.1265 24 711 22.0 37.97 50
pairs(~crim+nox+dis+tax+medv,data = Boston)
在得到图后对规律做适当描述即可。例如:nox和dis负相关。
cor(Boston[-1],Boston$crim)
## [,1]
## zn -0.20046922
## indus 0.40658341
## chas -0.05589158
## nox 0.42097171
## rm -0.21924670
## age 0.35273425
## dis -0.37967009
## rad 0.62550515
## tax 0.58276431
## ptratio 0.28994558
## lstat 0.45562148
## medv -0.38830461
适当描述不同变量的相关性即可。例如:crim和indus、nox、rad、tax正相关,和medv、dis、black负相关,其中rad相关性最强,其次为tax、lstat等。
tem <- rbind(apply(Boston[,-4],2,mean),apply(Boston[,-4],2,sd))
row.names(tem) <- c("mean", "sd")
tem
## crim zn indus nox rm age dis rad
## mean 3.613524 11.36364 11.136779 0.5546951 6.2846344 68.57490 3.795043 9.549407
## sd 8.601545 23.32245 6.860353 0.1158777 0.7026171 28.14886 2.105710 8.707259
## tax ptratio lstat medv
## mean 408.2372 18.455534 12.653063 22.532806
## sd 168.5371 2.164946 7.141062 9.197104
sum(Boston$chas)
## [1] 35
共35个。
median(Boston$ptratio)
## [1] 19.05
中位数为19.05。
which(Boston$medv==min(Boston$medv))
## [1] 399 406
第399和406个的medv最低。
Boston[399,]
## crim zn indus chas nox rm age dis rad tax ptratio lstat medv
## 399 38.3518 0 18.1 0 0.693 5.453 100 1.4896 24 666 20.2 30.59 5
summary(Boston[-4])
## crim zn indus nox
## Min. : 0.00632 Min. : 0.00 Min. : 0.46 Min. :0.3850
## 1st Qu.: 0.08205 1st Qu.: 0.00 1st Qu.: 5.19 1st Qu.:0.4490
## Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.5380
## Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.5547
## 3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.6240
## Max. :88.97620 Max. :100.00 Max. :27.74 Max. :0.8710
## rm age dis rad
## Min. :3.561 Min. : 2.90 Min. : 1.130 Min. : 1.000
## 1st Qu.:5.886 1st Qu.: 45.02 1st Qu.: 2.100 1st Qu.: 4.000
## Median :6.208 Median : 77.50 Median : 3.207 Median : 5.000
## Mean :6.285 Mean : 68.57 Mean : 3.795 Mean : 9.549
## 3rd Qu.:6.623 3rd Qu.: 94.08 3rd Qu.: 5.188 3rd Qu.:24.000
## Max. :8.780 Max. :100.00 Max. :12.127 Max. :24.000
## tax ptratio lstat medv
## Min. :187.0 Min. :12.60 Min. : 1.73 Min. : 5.00
## 1st Qu.:279.0 1st Qu.:17.40 1st Qu.: 6.95 1st Qu.:17.02
## Median :330.0 Median :19.05 Median :11.36 Median :21.20
## Mean :408.2 Mean :18.46 Mean :12.65 Mean :22.53
## 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:16.95 3rd Qu.:25.00
## Max. :711.0 Max. :22.00 Max. :37.97 Max. :50.00
对结果简单描述即可。例如:crim处于较高的位置, ptratio和lstat都接近最大值,age为最大值,其余数据在较适中的位置。
sum(Boston$rm>7)
## [1] 64
sum(Boston$rm>8)
## [1] 13
多于7的有64个,多于8的有13个。
summary(Boston)
## crim zn indus chas
## Min. : 0.00632 Min. : 0.00 Min. : 0.46 Min. :0.00000
## 1st Qu.: 0.08205 1st Qu.: 0.00 1st Qu.: 5.19 1st Qu.:0.00000
## Median : 0.25651 Median : 0.00 Median : 9.69 Median :0.00000
## Mean : 3.61352 Mean : 11.36 Mean :11.14 Mean :0.06917
## 3rd Qu.: 3.67708 3rd Qu.: 12.50 3rd Qu.:18.10 3rd Qu.:0.00000
## Max. :88.97620 Max. :100.00 Max. :27.74 Max. :1.00000
## nox rm age dis
## Min. :0.3850 Min. :3.561 Min. : 2.90 Min. : 1.130
## 1st Qu.:0.4490 1st Qu.:5.886 1st Qu.: 45.02 1st Qu.: 2.100
## Median :0.5380 Median :6.208 Median : 77.50 Median : 3.207
## Mean :0.5547 Mean :6.285 Mean : 68.57 Mean : 3.795
## 3rd Qu.:0.6240 3rd Qu.:6.623 3rd Qu.: 94.08 3rd Qu.: 5.188
## Max. :0.8710 Max. :8.780 Max. :100.00 Max. :12.127
## rad tax ptratio lstat
## Min. : 1.000 Min. :187.0 Min. :12.60 Min. : 1.73
## 1st Qu.: 4.000 1st Qu.:279.0 1st Qu.:17.40 1st Qu.: 6.95
## Median : 5.000 Median :330.0 Median :19.05 Median :11.36
## Mean : 9.549 Mean :408.2 Mean :18.46 Mean :12.65
## 3rd Qu.:24.000 3rd Qu.:666.0 3rd Qu.:20.20 3rd Qu.:16.95
## Max. :24.000 Max. :711.0 Max. :22.00 Max. :37.97
## medv
## Min. : 5.00
## 1st Qu.:17.02
## Median :21.20
## Mean :22.53
## 3rd Qu.:25.00
## Max. :50.00
summary(subset(Boston, rm > 8))
## crim zn indus chas
## Min. :0.02009 Min. : 0.00 Min. : 2.680 Min. :0.0000
## 1st Qu.:0.33147 1st Qu.: 0.00 1st Qu.: 3.970 1st Qu.:0.0000
## Median :0.52014 Median : 0.00 Median : 6.200 Median :0.0000
## Mean :0.71879 Mean :13.62 Mean : 7.078 Mean :0.1538
## 3rd Qu.:0.57834 3rd Qu.:20.00 3rd Qu.: 6.200 3rd Qu.:0.0000
## Max. :3.47428 Max. :95.00 Max. :19.580 Max. :1.0000
## nox rm age dis
## Min. :0.4161 Min. :8.034 Min. : 8.40 Min. :1.801
## 1st Qu.:0.5040 1st Qu.:8.247 1st Qu.:70.40 1st Qu.:2.288
## Median :0.5070 Median :8.297 Median :78.30 Median :2.894
## Mean :0.5392 Mean :8.349 Mean :71.54 Mean :3.430
## 3rd Qu.:0.6050 3rd Qu.:8.398 3rd Qu.:86.50 3rd Qu.:3.652
## Max. :0.7180 Max. :8.780 Max. :93.90 Max. :8.907
## rad tax ptratio lstat medv
## Min. : 2.000 Min. :224.0 Min. :13.00 Min. :2.47 Min. :21.9
## 1st Qu.: 5.000 1st Qu.:264.0 1st Qu.:14.70 1st Qu.:3.32 1st Qu.:41.7
## Median : 7.000 Median :307.0 Median :17.40 Median :4.14 Median :48.3
## Mean : 7.462 Mean :325.1 Mean :16.36 Mean :4.31 Mean :44.2
## 3rd Qu.: 8.000 3rd Qu.:307.0 3rd Qu.:17.40 3rd Qu.:5.12 3rd Qu.:50.0
## Max. :24.000 Max. :666.0 Max. :20.20 Max. :7.44 Max. :50.0
boxplot(Boston)
boxplot(subset(Boston, rm > 8))
对这些区域简单描述即可。例如:多于8个房间的人口普查区域,age和medv值相对较高,tax相对较低。