首先要知道的一些东西。
a=seq(1,10) # seq函数 这样搞可以知道1到10的向量
q=runif(10,min=5,max=10) #均匀分布函数runif( ),随机数,带有小数。
w=round(3.1415, digits=2) #round指定小数的东西
w=round(3.1415, digits=3) #round还有四舍五入的效果
w=round(3.1415) #直接变成整数
e=rnorm(20,mean=5,sd=7) #正态分布函数rnorm( ),mean就是平均值,sd就是标准差
r=c(55,66,77,88,999,4335,666)
r[which(r>100)]=100 #which能让大于100的都变成100
t =sum(c(1,2,3)) #求总数。
模拟产生统计专业同学的名单(学号区分),记录数学分析,线性代数,概率统计三
科成绩,然后进行一些统计分析
num = seq(1,100)
数学=round(runif(100,min=80,max=100)) #均匀分布函数runif
语文=round(rnorm(100,mean=80,sd=7)) #正态分布函数rnorm
英语=round(rnorm(100,mean = 83,sd=18)) #由于正态分布的 标准差很大,会出现超过100的现象
英语[which(英语>100)]=100 #不能运行这种现象,所以用到了which,就没有超过100的
x=data.frame(num,数学,语文,英语) #放到数据框里面。
计算各科平均分
colMeans(x) # 对列求平均值,就连学号的平均值也算出来了。
colMeans(x) [c("数学","语文","英语")] #就是不显示 学号
apply 用到这个函数
apply(x,2, mean) # 2是行
apply(x,1, mean) # 1是列,试试看就懂了
求各科最高最低分
apply(x,2,max) #max 最高
#额~,语文101分,这下子 尴尬了 ,算了。知道正态分布两头小,中间大,就行了。就当那个学生后台强硬,就是多1分出来。
apply(x,2,min) #min最低
求出每人总分
apply(x[c("数学","语文","英语")],1,sum)
完成睡觉。