每题需注意1命令代码2结果或图形3自己的错误
21 y =sin(10)e(0.34)log423
y <- sin(10*pi)*exp(-0.3+4^2)+log(23)/log(4)
2 x = sin(223/3), y = x^2,z = y*10 ;求x+2y-5z x <- sin(223/3);y <- x^2;x+2*y-5*z
3 建立起始值=3,增量值=5.5,终止值=44的一维数组x x <- seq(3.47,by=5.5)
4 建立等差一维数组x:首项为0,末项为,项数为15 x <- seq(0,pi,length=15)
5 将100,200,200,200,400,600,600,600,800 输入R中,保存到numeric变量中 numeric <- c(100,200,200,200,400,600,600,600,800)
6 将numeric转换为factor存入变量factor.numeric,并用class()确认。 factor.numeric <- as.factor(numeric) 7 查看factor.numeric的内容 factor.numeric
8 创建一个2到50的向量,形式为 2, 4, 6, 8, ..., 48, 50并名为为vector1 vector1 <- seq(from=2,to=50,by=2) 9 选取vector1中的第20个元素 vector1[20]
10 选取vector1中的第10,15,20个元素 vector1[c(10,15,20)]
11 选取vector1中的第10到20个元素 vector[10:20]
12 选取vector1中值大于40的元素 vector1[vector1>40]
13创建向量1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 rep(1:5,5)
14使用rep()创建向量0 0 0 0 0 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4
rep(0:4,rep(5,5))
15 用函数rep()构造一个向量x,它由3个3,4个2,5个1构成 x=c(rep(3,3),rep(2,4),rep(1,5))
统计软件实验2
每题需注意1命令代码2结果或图形3自己的错误
3231计算行列式的值A426 781A=det(matrix(c(3,4,7,2,2,8,3,6,1),nrow=3))
3231112 矩阵A426,矩阵B222;求出A x B及A与B中对应元素之间的乘积 781333A=matrix(c(3,4,7,2,2,8,3,6,1),nrow=3);B=matrix(rep(1:3,3),nrow=3);A%*%B;A*B
3由1,2,...,16构成两个方阵,其中矩阵A按列输入,矩阵B按行输入,并计算C=A+B,D=AB A=matrix(1:16,nrow=4);B=matrix(1:16,nrow=4,byrow=T);C=A+B;D=A%*%B
4先复制附录数据至文本文档,然后读取数据至文件data data <- read.table(\"D:/t.data.txt\
5 比值的计算weight和height的平方的比值存入bmi变量 bmi <- weight/height^2;detach(data)
6 创建对象x, 其值为1:10, 使用write函数将其写入文件x.txt;删除x, 然后再读入该文件并赋值给x,并保证 x是 numeric x <- 1:10
write.table(x,file = \"x.txt\");rm(x);x x <- read.table(\"x.txt\class(x);x <- as.numeric(x$x);x
7 查看mtcars数据(mtcars回车);把vs变量所在列的元素全都改成你的“学号后两位”(mtcars$vs<-7);把mtcars存为mtcars.csv文件;读入mtcars.csv文件存入mtcarsnew; Mtcars
Mtcars$vs<-学号后两位 mtcarsnew<-read.csv()
8 把mtcars转换成矩阵mm并判断数据类型;把第六行改成你的“学号后两位”;取矩阵mm前11行存入变量mtcars11;取mtcars11的主对角线的元素,构成主对角阵mt;取mtcars11的上三角阵存入mtupper;(需要通过网络搜索学习上三角矩阵定义) mm<-as.matrix(mtcars);class(mm) mm[6,]<-学号后两位
mtcars11(mtcars11<-head(mtcars,11)) mt(mt<-diag(diag(mtcars11)))
mtupper(x[lower.tri(x)]<-0;mtupper<-x) x[lower.tri(x)]<-0
lower.tri(x,diag=FALSE x[upper.tri(x)]<-0
upper.tri(x,diag=FALSE)
9把mtupper的行名和列名改为NULL。
rownames(mtupper)<-NULL colnames(mtupper)<-NULL
10. mtupper每一行求和,存入mtsum。
mtsum<-apply(mtupper,MARGIN=1,FUN=sum)
附录:数据:
1 身高体重数据 weight height 4.17 1.75 5.58 1.8 5.18 1.65 6.11 1.9 4.5 1.74 4.61 1.91 5.17 1.75 4.53 1.8 5.33 1.65 5.14 1.9 4.81 1.74 4.17 1.91 4.41 1.75 3.59 1.8 5.87 1.65 3.83 1.9 6.03 1.74 4.89 1.91 4.32 1.75 4.69 1.8
统计软件实
rownames(mtupper)<-NULL 1 数据的读取(数
colnames(mtupper)<-NULL
据见附录)验3
data<-read.table(\"路径/t.data.txt\2 绘图
plot(height, weight) # 绘图 3 更改绘图的参数的取值
例如:plot(height, weight, pch=2) #更改后的绘图
5.根据cityrain数据作图。令Y轴范围(0,300),xaxt=\"n\",type=\"b\颜色为黑,X轴标题为“Month”,Y轴标题为“Tokyo Rainfall(mm)”,主标题“Monthly Rainfall in major cities”。用axis()函数添加X轴,使在X轴1到12的位置分别对应12个月份。
rain <- read.csv(\"cityrain.csv\") plot(rain$Tokyo,type
\"b\Rainfall in major cities\")
axis(1,at=1:12,labels = rain$Month)
=
4. 在[0,4pi]画sin(x),cos(x)(在同一个图象中); 其中sin(x)和cos(x)图象用不同的颜色和形状表示,并在函数图上适当的位置标注 “箭头+y=sin(x)”, “箭头+y=cos(x)” ,标记x轴,y轴,标题为“正弦余弦函数图象”.
plot(sin,0,4*pi,main=\"正弦余弦函数图像\轴\轴\
curve(cos,0,4*pi,col=\"blue\arrows(3.3,0.8,2.3,0.8) text(3.8,0.8,\"sin(x)\") arrows(10.8,0.8,11.8,0.8) text(10,0.8,\"cos(x)\") 例如:
附录:数据:
1 身高体重数据 weight height 4.17 1.75 5.58 1.8 5.18 1.65 6.11 1.9 4.5 1.74 4.61 1.91 5.17 1.75 4.53 1.8 5.33 1.65 5.14 1.9 4.81 1.74 4.17 1.91 4.41 1.75 3.59 1.8 5.87 1.65 3.83 1.9 6.03 1.74 4.89 1.91 4.32 1.75 4.69 1.8
统计软件实验4
1使用三种循环,输出向量1:100中所有数据。 ①
for (I in 1:100) print(I)
②
while (i<=100) {
sum <- sum+i i <- i+1 }
print(sum)
③ repeat{
if(i%%2!=0)sum <- sum+i i <- i+1
if(i>100)break }
print(sum)
2使用while循环求1+2+3+…+100的和。 i <- 1 sum <- 0
while(i<=100){ sum<- sum+1 i <- i+1 }
print(sum)
3使用repeat循环求1至100之间的奇数和。 i <- 1 sum <- 0
while(i<=100){ sum<- sum+1 i <- i+1 }
print(sum)
4使用for循环输出1至100之间的能够被3或5整除的数,并求和。 sum <- 0 for(i in 1:100){
if(i%%3==0|i%%5==0){ print(i)
sum <- sum+i } }
print(sum)
5定义一个长度为100、mean=1,sd=1的正态分布随机向量,并找出该向量的最小值及其出现的位置。 rnorm(n,mean,sd),种子设为123 set.seed(123)
norm <- rnorm(100,1,1) min.norm <- 100 for(i in 1:100){
if(norm[i]<=min.norm){ min.norm=norm[i] min.count=i } }
cat(min.norm,min.count)
6找出100次产生的长度为100、mean=1,sd=1的正态分布随机向量的最小值与出现位置的关系。(用plot(min.count,min.norm)表示,其中min.count为位置向量,min.norm为最小值向量)
for(i in 1:100){
norm <- rnorm(100,1,1) min.norm[i] <- 100 for(i in 1:100){
if(norm[i]<=min.norm[i]){ min.norm[i]=norm[i] min.count[i]=i } } }
plot(min.count,min.norm) 7
Calculate the first 50 powers of 2, 2*2, 2*2*2, etc.
Calculate the squares of the integer numbers from 1 to 50.
Which pairs are equal, i.e. which integer numbers fulfill the condition 2nn2. How many pairs are there?(Use R to solve all these questions!)
(思考使用循环和不使用循环两种方式解答) sum=0
for(i in 1:100) if(2^i==i^2){ sum=sum+1 print(i) }
cat(\"sum=\
n=c(1:50) a=2^n b=n^2 x=a-b n[x==0] sum(x==0)
n=c(1:50) a=2^n b=n^2 x=a-b
n[!((x>0)|(x<0))]
sum(!((x>0)|(x<0)))
因篇幅问题不能全部显示,请点此查看更多更全内容