- 使用三种循环,输出向量1:100中所有数据。
for(i in 1:100)
print(i)
i=1
while (i<=100) {
print(i)
i =i+1
}
i=1
repeat{
if(i<=100)
print(i)
i =i+1
if(i>100)break
}
- 使用while循环求1+2+3+…+100的和。
#while循环求1+2+3+…+100
sum=0;i=1;
while (i<=100) {
sum=sum+i
i=i+1
}
print(sum)
- 使用repeat循环求1至100之间的奇数和。
#使用repeat循环求1至100之间的奇数和
sum=0;i=1;
repeat{
if(i%%2!=0)sum =sum+i
i =i+1
if(i>100)break
}
print(sum)
- 使用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)
> sum =0
> for(i in 1:100){
+ if(i%%3==0|i%%5==0){
+ print(i)
+ sum =sum+i
+ }
+ }
> print(sum)[1] 2418
- 编写一个R程序,输入一个整数n,如果n≤0,则终止运算,并输出一句话:“要求输入一个正整数”;否则,如果n是偶数,则讲m除2,并赋给n;否则,将3n+1赋给n。不断循环,只到n=1,才停止计算,并输出一句话:“运算成功”。
myfuction<- function(n){
if(n <= 0)
print("要求输出一个正整数")
else{
repeat{
if(n == 1)break
else if(n %% 2 == 0){n <- n/2}
else n <- 3*n + 1
}
print("运算成功")
}
}
myfuction(0)
myfuction(90)
- MASS程序包中的数据框road是关于美国各地交通事故死亡人数的数据,请筛选并显示出死亡人数超过2000或者低于200的地区信息。
library(MASS)
road
road[road$deaths>2000|road$deaths<200,]
- 查看附录中数据:
- 将附录中的数据保存为以“你的名字+你爱豆的名字”csv文件;(截图)
- 选择并显示高数、线代、概率论三门课成绩都大于等于80的学生成绩信息;
data1=read.csv("苏热巴.csv");data1
data1[data1$高数>=80&data1$线代>=80&data1$概率论>=80,]、
- 选择并显示三门课至少有一门大于等于90的学生成绩信息。
data1[data1$高数>=90|data1$线代>=90|data1$概率论>=90,]
附录:
学号 | 名字 | 性别 | 班级 | 高数 | 线代 | 概率论 |
1001 | Prada | M | 1 | 84 | 89 | 96 |
1002 | MiuMiu | F | 2 | 59 | 49 | 85 |
1003 | Louis Vuitton | M | 2 | 99 | 98 | 100 |
1004 | CELINE | F | 1 | 78 | 56 | 71 |
1005 | Chole | F | 1 | 64 | 61 | 60 |
1006 | YSL | M | 2 | 32 | 48 | 56 |
- 利用正态分布函数与指数分布函数随机分别生成两个长度为15的样本,并利用自己定义的函数计算两个样本的T统计量。
n=15
a=rnorm(n);a
b=rexp(n);b
t1<- function(x,y){
s=((n-1)*var(x)+(n-1)*var(y))/(2*n-2)
t=(mean(x)-mean(y))/(s*sqrt(2/n))
print(t)
}
t1(a,b)
- 模拟数据专业学生名单(学号区分),记录高数、线代、概率论、R语言四科成绩,然后进行统计分析。假设有100名学生, 起始学号为160217001,各科成绩取整,高数成绩为正态分布随机数,平均成绩为61分,标准差为7;线代成绩为均匀分布随机数,都在70分以上;概率论成绩为正态分布,平均成绩为65,标准差为19;R语言为均匀分布产生随机数。把正态分布中超过100分的成绩变成100分。
9.1 生成学号;
9.2 生成高数成绩
高数成绩要求:高数成绩为正态分布随机数,平均成绩(mean)为61分,标准差(sd)为7;正态分布函数:rnorm(n,mean=0,sd=1)
9.3 生成线性代数
线代成绩为均匀分布随机数,都在70分以上;其中n为产生随机值个数(长度),min为最小值,max为最大值;
9.4 生成概率论
概率论成绩为正态分布,平均成绩为65,标准差为19;
学号=seq(160217001,160217100);学号
高数=round(rnorm(100,mean=61,sd=7));高数
线性代数=round(runif(100,min=70,max=100));线性代数
概率论=round(rnorm(100,mean=65,sd=19));概率论
R=round(runif(100,min=80,max=100));R
概率论[which(概率论>100)]=100
9.5 生成R语言
R语言为均匀分布产生随机数.
9.6 把上述信息组合程数据框,并写到文本文件中;计算各种指标:平均分,每个人的总分,最高分,最低分分(使用apply函数)
A. 生成文本文件(截图)
x=data.frame(学号,高数,线性代数,R,概率论);x
write.table(x,"mark.txt")
- 打开数据框(截图)
- 在数据框中命名变量(截图)
- 计算各种指标:平均分(X 5),每个人的总分(X6),最高分(X7),最低分(X8)
平均分:
x5=apply(x[c("高数","线性代数","R语言","概率论")],1,mean);x5
x6=apply(x[c("高数","线性代数","R语言","概率论")],1,sum);x6
x7=apply(x,2,max);x7
x8=apply(x,2,min);x8
9.7 将生成成绩写入文本文件中(截图);
x$平均分=x5
x$总分=x6
x$最高分=x7
x$最高低分=x8
write.table(x,"omark.txt",col.names = T,row.names =F,sep = " " )
y=read.table("omark.txt",header = T);y
9.8 求总分最高的小朋友
x$学号[which.max(x6)]