R语言基础题及答案——R语言与统计分析第二章课后习题(汤银才)
Posted slandarer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言基础题及答案——R语言与统计分析第二章课后习题(汤银才)相关的知识,希望对你有一定的参考价值。
R语言与统计分析第二章课后习题(汤银才)
题-1
用函数rep( )构造一个向量x, 它由3个3, 4个2, 5个1构成.
x<-rep(c(3,2,1),times=c(3,4,5));print(x)
[1] 3 3 3 2 2 2 2 1 1 1 1 1
题-2
由1, 2, . . . , 16构成二个方阵, 其中矩阵A按列输入, 矩阵B按行输入, 并 计算:
-
C=A+B;
-
D=A.*B;
-
E=AB;
-
去除A的第3行, B的第3列, 重新计算上面的矩阵E
# 构造矩阵A B
A<-matrix(data=1:16,4)
B<-matrix(data=1:16,4,byrow=TRUE)
# 1)C=A+B
C<-A+B;print(C)
# 2)D=A.*B
D<-A*B;print(D)
# 3)E=A*B
E<-A%*%B;print(E)
# 4)E=A[-3,]*B[,-3]
E<-A[-3,]%*%B[,-3];print(E)
…[,1] [,2] [,3] [,4]
[1,] 2 7 12 17
[2,] 7 12 17 22
[3,] 12 17 22 27
[4,] 17 22 27 32
.
…[,1] [,2] [,3] [,4]
[1,] 1 10 27 52
[2,] 10 36 70 112
[3,] 27 70 121 180
[4,] 52 112 180 256
.
…[,1] [,2] [,3] [,4]
[1,] 276 304 332 360
[2,] 304 336 368 400
[3,] 332 368 404 440
[4,] 360 400 440 480
.
… [,1] [,2] [,3]
[1,] 276 304 360
[2,] 304 336 400
[3,] 360 400 480
题-3
函数solve( )有二个作用: solve(A,b)可用于求解线性方程组Ax=b, solve(A)可用于求矩阵A的逆. 设 A = [ 1 2 3 4 5 6 7 8 10 ] , b = [ 1 1 1 ] \\mathbf{A}=\\left[\\begin{array}{lll}1 & 2 & 3 \\\\4 & 5 & 6 \\\\7 & 8 & 10\\end{array}\\right], \\quad b=\\left[\\begin{array}{l}1 \\\\1 \\\\1\\end{array}\\right] A=⎣⎡1472583610⎦⎤,b=⎣⎡111⎦⎤
用二种方法编程求方程组Ax=b的解
# 矩阵和向量定义
A<-matrix(data=c(1:8,10),3,byrow=TRUE);print(A)
b<-matrix(rep(1,3),3)
# 法一
solve(A,b)
# 法二
solve(A)%*%b
…[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
[3,] 7 8 10
.
…[,1]
[1,] -1.000000e+00
[2,] 1.000000e+00
[3,] 3.330669e-16
.
… [,1]
[1,] -1.000000e+00
[2,] 1.000000e+00
[3,] 4.440892e-16
题-4
设x与y表示n维的向量,则x%*%y或crossprod(x,y)用于求它们的内积, 即t(x)%*%y; 而x%o%y或outer(x, y)用于求它们的外积(叉积), 即x%*%t(y), 其中(t( ))表示矩阵或向量的转置. 设x=(1, 2, 3, 4, 5), y=(2, 4, 6, 8, 10)用三 种不同的方法求它们的内积与外积.
# 构造
x=1:5
y=x*2
# 内积
x%*%y
t(x)%*%y
crossprod(x,y)
# 外积
x%o%y
x%*%t(y)
outer(x, y)
…[,1]
[1,] 110
.
…[,1]
[1,] 110
.
…[,1]
[1,] 110
.
… [,1] [,2] [,3] [,4] [,5]
[1,] 2 4 6 8 10
[2,] 4 8 12 16 20
[3,] 6 12 18 24 30
[4,] 8 16 24 32 40
[5,] 10 20 30 40 50
.
… [,1] [,2] [,3] [,4] [,5]
[1,] 2 4 6 8 10
[2,] 4 8 12 16 20
[3,] 6 12 18 24 30
[4,] 8 16 24 32 40
[5,] 10 20 30 40 50
.
… [,1] [,2] [,3] [,4] [,5]
[1,] 2 4 6 8 10
[2,] 4 8 12 16 20
[3,] 6 12 18 24 30
[4,] 8 16 24 32 40
[5,] 10 20 30 40 50
题-5
编写一个用二分法求非线性方程根的函数, 并求方程
x 3 − x − 1 = 0 x^3 - x -1 = 0 x3−x−1=0
在区间 [ 1 , 2 ] [1, 2] [1,2]内的根, 精度要求 ϵ = 1 0 − 5 \\epsilon=10^{-5} ϵ=10−5
# f:待求方程
# xl:自变量下限,xu:自变量上限
# eps:精确度
# xm:中点值(xu+xl)/2
fzero<-function(f,xl,xu,eps=1e-5){
if(f(xl)*f(xu)>0){
print("找不到该区间内的零点")
}else{
while(xu-xl>eps){
xm<-(xu+xl)/2
if(f(xu)*f(xm)<0){xl<-xm}else{xu<-xm}
}
root<-(xu+xl)/2
}
root
}
# f=x^3-x-1
f<-function(x){x^3-x-1}
# 调用函数求零点
fzero(f,1,2,eps=1e-5)
[1] 1.324718
题-6
自己编写一个函数, 求数据 y = ( y 1 , y 2 , . . . , y n ) y=(y_1, y_2, . . . , y_n) y=(y1,y2,...,yn)的均值、标准差、偏度与峰度.
library(fBasics)
# 写汉语比较有意思
getData<-function(y){
result<-list(
"均值"=mean(y),
"标准差"=sd(y),
"偏度"=skewness(y),
"峰度"=kurtosis(y)
)
}
y=1:10
result<-getData(y)
result$均值
result$标准差
result$偏度
result$峰度
[1] 5.5
[1] 3.02765
[1] 0
attr(,“method”)
[1] “moment”
[1] -1.561636
attr(,“method”)
[1] “excess”
题-7
有10名学生的身高与体重数据如表2.7所示.
1)用数据框的形式读入数据;
2)将数据表2.7写成一个纯文本的文件, 并用函数read.table( )读取该文件中的数据;
表 2.7 学生身高与体重数据
序号 | 性别 | 年龄 | 身高/cm | 体重/kg |
---|---|---|---|---|
1 | F | 14 | 156 | 42.3 |
2 | F | 16 | 158 | 45.0 |
3 | F | 15 | 161 | 48.5 |
4 | F | 17 | 156 | 51.5 |
5 | F | 15 | 153 | 44.6 |
6 | M | 14 | 162 | 48.8 |
7 | M | 16 | 157 | 46.7 |
8 | M | 14 | 159 | 49.9 |
9 | M | 15 | 163 | 50.2 |
10 | M | 16 | 165 | 53.7 |
- 用函数write.csv( )写成一个能用Excel打开的文件, 测试是否成功.
# 数据框构造
info<-data.frame("序号"=1:10,"性别"=c(rep("F",5),rep("M",5)),"年龄"=c(14,16,15,17,15,14,16,14,15,16),"身高/cm"=c(156,158,161,156,153,162,157,159,163,165),"体重/kg"=c(42.3,45.0,48.5,51.5,44.6,48.8,46.7,49.9,50.2,53.7))
print(info)
# txt写入及导入
write.table(info,file="info.txt")
read.table("info.txt")
# csv写入及导入
write.csv(info,file="info.csv")
read.csv("info.csv")
以上是关于R语言基础题及答案——R语言与统计分析第二章课后习题(汤银才)的主要内容,如果未能解决你的问题,请参考以下文章
R语言基础题及答案——R语言与统计分析第四章课后习题(汤银才)
R语言基础题及答案——R语言与统计分析第四章课后习题(汤银才)
R语言基础题及答案——R语言与统计分析第三章课后习题(汤银才)
R语言基础题及答案——R语言与统计分析第三章课后习题(汤银才)