1. 使用三种循环,输出向量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
}

 

  1. 使用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)

 

  1. 使用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)

 

  1. 使用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

 

  1. 编写一个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)

 

  1. MASS程序包中的数据框road是关于美国各地交通事故死亡人数的数据,请筛选并显示出死亡人数超过2000或者低于200的地区信息。

library(MASS)

road

road[road$deaths>2000|road$deaths<200,]

 

  1. 查看附录中数据: 
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  1. 将附录中的数据保存为以“你的名字+你爱豆的名字”csv文件;(截图)

 

  1. 选择并显示高数、线代、概率论三门课成绩都大于等于80的学生成绩信息;

data1=read.csv("苏热巴.csv");data1

data1[data1$高数>=80&data1$线代>=80&data1$概率论>=80,]、

 

  1. 选择并显示三门课至少有一门大于等于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

 

  1. 利用正态分布函数与指数分布函数随机分别生成两个长度为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)

 

  1. 模拟数据专业学生名单(学号区分),记录高数、线代、概率论、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")

 

 

  1. 打开数据框(截图)

 

  1. 在数据框中命名变量(截图)

 

  1. 计算各种指标:平均分(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)]