R语言第十周作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十数据可视化(绘图二)
实验目的:
1.熟悉R条形图的制作
2.熟悉R直方图的制作
3.熟悉用Q-Q图来检验分布的特征
4.了解相关概率计算和随机抽样的R实现
实验要求:完成每个实验内容的同时,在每题后面附上程序代码。要求独立完成。
实验内容:
一.
1.对于iris数据,用每类花(iris$Speciees)的样本数作为高度,制作条形图。heights<- table(iris$Species)
barplot(heights)
2.用每类花的Sepal.Length、Sepal.Width、Petal.Length、Petal.Width的平均值分别制作条形图,四图同显。
par(mfrow=c(2,2))
attach(iris)
SLength<- tapply(Sepal.Length, Species, mean)
barplot(SLength,main="Mean Temp.by Sepal.Length",col=1)
SWidth<- tapply(Sepal.Width, Species, mean)
barplot(SWidth,main="Mean Temp.by Sepal.Width",col=2)
PLength<- tapply(Petal.Length, Species, mean)
barplot(PLength,main="Mean Temp.by Petal.Length",col=3)
PWidth<- tapply(Petal.Width, Species, mean)
barplot(PWidth,main="Mean Temp.by Petal.Width",col=4)
3.分别制作Sepal.Length、Sepal.Width、Petal.Length、Petal.Width的直方图(用密度值做代表,设置prob=T),添加拟合的密度曲线,四图同显。
par(mfrow=c(2,2))
attach(iris)
hist(Sepal.Length,prob=T,col=5)
lines(density(Sepal.Length))
hist(Sepal.Width,prob=T,col=2)
lines(density(Sepal.Width))
hist(Petal.Length,prob=T,col=3)
lines(density(Petal.Length))
hist(Petal.Width,prob=T,col=4)
lines(density(Petal.Width))
4.分别制作Sepal.Length、Sepal.Width、Petal.Length、Petal.Width的正态Q-Q图,四图同显,并说明他们的正态性。
par(mfrow=c(2,2))
attach(iris)
qqnorm(Sepal.Length, main="Q-Q Plot: Sepal.Length",col=5)
qqline(Sepal.Length,col=5)
qqnorm(Sepal.Width, main="Q-Q Plot: Sepal.Width",col=6)
qqline(Sepal.Width,col=6)
qqnorm(Petal.Length, main="Q-Q Plot: Petal.Length",col=9)
qqline(Petal.Length,col=9)
qqnorm(Petal.Width, main="Q-Q Plot: Petal.Width",col=8)
qqline(Petal.Width,col=8)
二.用随机模拟的方法计算下面积分的数值,并和实际值作比较。
π
∫sin xdx
m<-100000
sam<-data.frame(x=runif(m,0,pi),y=runif(m,0,1))
head(sam$y<=sin(sam$x))
plot(sam)
abline(h=c(0,1),v=c(0,pi),col="red")
points(sam[sam$y<=sin(sam$x),],col="yellow")
> a<-4*sum(sam$y<=sin(sam$x))/m
> a
[1] 2.55812
实际值
> b<--(cos(pi)-cos(0))
> b
[1] 2
三.模拟来自指数分布随机变量的样本均值的极限分布。x<-rexp(1000)
n<-c(2,5,10,60)
m<-10000
xbar<-data.frame()
for(i in 1:length(n)){
for(j in 1:m)
xbar[j,i]<-mean(sample(x,n[i],rep=T))
}
par(mfrow=c(2,2))
for(i in 1:4)
hist(xbar[,i],50,main=paste("n=",n[i]),prob=T)