1、读取数据集。这里以一个简单的数据集为例。stu_data屏顿幂垂=data.frame(group=c("1班"荑樊综鲶,"2班","2班","1班","1班","2班","1班","2班"),age=c(">18","16-18","<16","16-18","16-18","16-18","16-18","16-18"),sex=c("F","M","F","F","M","M","F","M"),score=c(100,92,91,88,81,80,75,66))stu_data
2、无放回的简单随机抽样。在对数据集进行抽取的过程中,一般先随机抽取行号,然后根据行号找到对应的数据集。例如:sample1=sample(nrow(stu_data),6,replace=F) #从stu_data总的观测样本个数中抽取6个。sample1 #显示抽样结果data1=stu_data[sample1,] #得到这6个数据集。data1
3、有放回随机抽样。sample2=sample(nrow(stu_data),6,replace=T) #有放回地随机抽样data2=stu_data[sample2,] #得到抽样数据集data2#查看抽样数据集由于是有放回地,所以存在部分重复样本。重复的数据会有".1"、".2"等后缀标记,显示这条数据是重复抽了几次。
4、分层抽样。利用sampling包中的strata函数进行分层抽样,然后利用getdata获取抽样样本逗垅型巢集。sample3=strata(stu_data,stratanames="group",size=c(1,3),method="srswor") #按照group变量进行分层抽样,分别在1班、2班中抽取1和3个样本,抽样方式为无放回抽样。sample3 #查看抽样结果getdata(stu_data,sample3) #显示分层抽样的数据集
5、各层概率不相等的系统抽样。sample4=strata(stu_data,stratanames="group",size=c(1,3),method="systematic",pik=stu_data$score) #分层抽样中method选择系统抽样,pik为各层中个样本的抽样概率sample4 #查看抽样结果getdata(stu_data,sample4) #获取抽样数据集从结果中可以看出,score取值越大的,被抽到的概率越高。
6、利用cluster函墙绅褡孛数进行整群抽样。当群内样本差异大,群间差异较小时,可考虑整群抽样。例如抽取某一邗锒凳审个班级的成绩数据集。sample5=cluster(stu_data,clustername="group",size=1,method="srswor",description=TRUE) #以group作为划分群的变量,抽取群数size为1,抽样方法是无放回抽样,description显示抽样时各群基本信息。sample5 #查看抽样结果getdata(stu_data,sample5) #得到抽样数据集