先记录两个函数的用法:
sample()函数主要用于随机抽样,用法如下:
sample(x,size,replace=FALSE,prob=NULL)
x代表待执行表达式,即需要抽样的样本元素
size指定抽样的次数
replace=FALSE代表不放回抽样,replace=TRUE代表有放回抽样
prob指定抽取元素的概率,数量与样本数量一致(每个数都有概率)(不写默认概率相同)
replicate()函数主要用于重复指定次数执行表达式,用法如下:
replicate(x,expr)
x代表重复执行次数
expr代表待执行表达式
样题:
有5个身高:177、180、165、166、170(单位cm),每次随机抽取3次,重复1000次,画出样本均值的概率分布直方图。
写法一:
> height<-c(177,180,165,166,170) //向量形式输入数据
> result<-c() //设置为空
> for(i in 1:1000){ //循环1000次
result<-append(result,mean(sample(height,3,replace=T)))
}
//sample随机抽3个身高,mean求其平均值,append将结果加到result内
> hist(result) //画直方图
效果图如下:
写法二:
> height<-c(177,180,165,166,170)
> hist(replicate(1000,mean(sample(height,3,replace=T))))
//用replicate()函数代替循环进行重复
效果图如下:
本次记录就到这。