模拟程序(我命油我不油天)

三 、程序填空题
答题说明:答案必须做在答题纸上,做在试卷上一律无效。
1.如欲在 R 语言中安装第三方包,包的名字是“plyr”,则安装语句是?
请写出代码: install.packages("plyr")
若要加载这个包语句是?
请写出代码: library(plyr)
2. 2*1:5 结果为?
请输出结果: 2 4 6 8 10
3. x = sin (22/3),y=x 2 ,z = y 10 ,求x + 2y − 5z,
请写出代码:
x <- sin⁡(22/3
y <- x^2
z <- y^10
x+2*y-5*z
4.建立起始值=3,增量值=5.5,终止值=41.5 的一维数组下 x,
请写出代码: x <- seq(3,41.5,by=5.5)
5.建立 a 向量,分量初值为 1,公差为 3 的等差数列值,长度为 10。
请写出代码: a <- seq(1,by=3,length=10)
6.用函数 rep()构造一个向量 x,它由 3 个 3,4 个 2,5 个 1 构成
请写出代码: x <- c(rep(3,3),rep(2,4),rep(1,5))
7.构造一个向量 x,向量是由 5 个 1,3 个 2,4 个 3,2 个 4 组成。
请写出代码: x <- c(rep(1,5),rep(2,3),rep(3,4),rep(4,2))
8.创建 2 到 50 的向量,形式为 2,4,6,8…,48,50 并命名为 vector1
请写出代码: vector1 <- seq(2,50,by=2)
9.在上题中选取 vector1 中的第 10,15,20 个元素
请写出代码: vector1[c(10,15,20)]
10.在上题中选取 vector1 中的第 10 到 20 个元素
请写出代码: vector1[10:20]
11.在第 8 题中选取 vector1 中的值大于 40 的元素
请写出代码: vector1[vector1>40]
12.构造 4*5 矩阵 A 和 B,其中 A 是将 1,2……20 按行输入,B 是按列输入,
请写出代码: A <- matrix(1:20,nrow = 4,ncol = 5,byrow=T)
B <- matrix(1:20,nrow=4,ncol = 5)
13.为图形添加标题和坐标轴标签的函数名是什么?(只写函数名,不用写括号,
注意大小写)
正确答案:title
14.用来创建自定义坐标轴的函数名是什么?(只写函数名,不用写括号,注意
大小写)
正确答案:axis
四、程序大题(请按要求写出相关的代码)
答题说明:答案必须做在答题纸上,做在试卷上一律无效。
1. 创建一个向量 S,它的元素为“one”,“two”,“three”,并查看它的类型。
s <- c("one","two","three")
typeof(s)
2.生成一个数值型向量,其元素为 21,34,50,并对其中元素进行命名为“math”,
“science”,“chinese”
c(math=21,science=34,chinese=50)
或者:x <- c(21,34,50)
names(x) <- c("math","science","chinese")
3.怎么生成向量:“临床 2016 甲、临床 2016 乙、临床 2017 甲、临床 2017 乙、
临床 2018 甲、临床 2018 乙、临床 2019 甲、临床 2019 乙”
paste("临床",rep(2016:2019,each=2),rep(c("甲","乙"),3),sep="")
4.随机产生一个包括负数和正数的向量,负数采用 1-负数替代,即-3 变成 4,
正数用 1+正数替代,即 2 变成 3,怎么编写代码?
ss <- runif(10,-2,2)
ss[ss>0]<- ss[ss>0]+1
ss[ss<0] <- 1-ss[ss<0]
5.datasets 是 R 中一个重要的数据集,很多有用的数据都在这个集合中。尝试
写出 R 的代码,查看指定包“datasets”中的数据集。
library(datasets)
data()
6.写出 R 的代码,建立一个 4 行,3 列的矩阵,矩阵的名字是 matrix43,每一行
的名字是 a、b、c、d,列的名字是 e、f、g。
matrix43<-
matrix(1:12,nrow=4,byrow=T,dimnames=list(c("a","b","c","d"),c("e","f"
,"g")))
7.写出 R 的代码,创建一个名为 student 的数据框,包含这样几个元素:
学生的学号,名字:sno;值:2020001,2020002,2020003
学生的姓名,名字:sname;值:John,David,Kate
学生的年龄,名字:sage;值:20,21,22
学生的专业,名字:dept;值:cs, se, math
student <- data.frame(
sno=c(2020001,2020002,2020003),
sname=c("John","David","Kate"),
sage=c(20,21,22),
dept=c("cs", "se"," math"))
8.写出 R 的代码,将问题 7 中的 student 数据框中的 sname 和 dept 两列放在
table()中输出。
table(student$sname,student$dept)
9.设 x=(1,3,5,7,9),构造 5*3 矩阵 M,其中第 1 列全为 1,第 2 列为向量 x,
第 3 列的元素为 x^2,并给矩阵的 3 列命名,分别是 const,x 和 x2.
x <- c(1,3,5,7,9)
M <- matrix(c(rep(1,5),x,x^2),nrow = 5)
colnames(M) <- c("const","x","x2")
10.掷一枚骰子 200 次,统计各个点数出现的次数。
d <- round(runif(200,1,6))
table(d)
11.创建对象 x,其值为 1:10,使用 write 函数将其写入文件 x.txt,删除 x
setwd("C:\\王蕾\\工作\\教学\\R 语言\\2020 年\\习题")
x <- 1:10
write.csv(x,"x.txt")
rm(x)
12.读取 MASS 包的 cats 数据集,
(1)并查看数据的维度信息。
(2)查看数据的前六行和后六行,。
(3)查看第 13,15,65,78,91 行的数据信息。
library(MASS)
data(cats)
dim(cats)
head(cats)
tail(cats,6)
cats[c(13,15,65,78,91),]
13.使用两种循环,输出向量 1:100 中所有数据
for (i in 1:100) {
print(i)
}
14.使用 while 循环求 1+2+3+…+100 的和
i <- 1
sum <- 0
while(i<=100){
sum <- sum+i
i <- i+1
}
print(sum)
15. 读取数据文件 stu.txt,记录了 19 名学生的身高体重数据,做如下几个处理:
(1)统计男生、女生的个数
(2)计算每个人的 BMI 指数:体重(kg)除以身高(m)的平方,将结果增加
到数据框中.
(3)BMI 指数>25 为肥胖,标记为 High, BMI 指数<18 为过轻标记为 Low,其
他为正常,标记为 Normal.将结果增加到数据框中。
(4)将所有男生的信息提取出来,写入一个 txt 文件中。
stu <- read.table("stu.txt",header = T)
table(student$Sex)
stu$BMI<-round(stu$Weight/((stu$Height/100)^2),1)
stu$score <- "Normal"
stu$score[stu$BMI > 25] <- "High"
stu$score[stu$BMI < 18] <- "Low"####
stu
附件:stu.txt 文件信息
Name Sex Age Height Weight
Alice F 13 156.5 45
Becka F 13 165.3 53
Gail F 14 164.3 34
Karen F 12 156.3 68
Kathy F 12 159.8 61
Mary F 15 166.5 56
Sandy F 11 151.3 44
Sharon F 15 162.5 53
Tammy F 14 162.8 70
Alfred M 14 169.0 60
Duke M 14 163.5 55
Guido M 15 167.0 45
James M 12 157.3 75
Jeffrey M 13 162.5 36
John M 12 159.0 51
Philip M 16 172.0 71
Robert M 12 164.8 49
Thomas M 11 157.5 78
William M 15 166.5 58
16.随机产生 60 名学生的身高(范围在 155cm 到 185cm 之间),体重(范围在 45kg
到 85kg 之间)使用红线绘制体重关于身高(身高为横坐标,体重为纵坐标)的
散点图,要求:同时绘点和线,线不穿过点,指定符号大小为默认值的 1.5 倍数,
线条宽度设置为为默认值的 2 倍。
height <- round(runif(60,155,185))
weight <- round(runif(60,45,85))
plot(height,weight,col=2,type="b",cex=1.5,lwd=2)
17.最近 5 届奥运会金牌榜分布如下
1996 2000 2004 2008
USA 44 37 35 36
China 16 28 32 51
Russia 26 32 27 23
Korea 7 8 9 13
用条形图分析上述数据,分别用分组形式和堆叠形式,并加图例。
x1<-c(44,37,35,36,16,28,32,51,26,32,27,23,7,8,9,13)
y1<-matrix(x1,nrow=4,byrow =T)
colnames(y1)<-c(1996,2000,2004,2008)
rownames(y1)<-c('USA','China','Russia','Korea')
y1
barplot(y1,col=rainbow(4),
legend=c('USA','China','Russia','Korea'),names.arg=colnames(y1))
#(分组形式)
M<-c("1996","2000","2004","2008")
x<-matrix(c(44,37,35,36,16,28,32,51,
26,32,27,23,7,8,9,13),nrow = 4,ncol = 4)
x
barplot(x,legend=c('USA','China','Russia','Korea'),
col=rainbow(4),names.arg=M,beside = TRUE)
18. 绘制 y=sinx 在[-2π,2π]上的图像,在图像上添加函数表达式,并使用红线
添加 y=±1这条线。
x<-seq(from=-2*pi,to=2*pi,length=200)
y<-sin(x)
plot(x,y,lty=1,type="l",col="red",lwd=2)
text(locator(1),expression(y==x/2-2*sinx))
19.使用 mtcar 数据集,创建 wt,mpg,disp 的直方图,图形组合为 3 行 1 列。
attach(mtcars)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值