随机抽样
libname temp "D:\b临时需求\测试抽样20210527\";
options compress=yes user=temp validvarname=any;
PROC IMPORT OUT= s DATAFILE= "D:\b临时需求\测试抽样20210527\分案.xlsx" DBMS=EXCEL REPLACE;
GETNAMES=YES;
quit;
proc sort data=s;
by 类型;
run;
proc surveyselect data=s out=s1 method=srs samprate=(0.1,0.3,0.5,0.2); /*根据分层情况设置每一层要抽取的比例*/
strata 类型;
run;
proc sql;
create table a1 as
select a.类型, yuanlai,xianzai
from
(
select 类型,count(*) as yuanlai
from s
group by 类型
) as a
left join
(
select 类型,count(*) as xianzai
from s2
group by 类型
) as b
on a.类型=b.类型
;quit;
/*根据分层变量不等比例从总体中抽取样本*/
proc surveyselect data=s out=s2 method=srs
n=(30,20,20,40);
strata 类型;
run;
PROC IMPORT OUT= sample DATAFILE= "D:\b临时需求\测试抽样20210527\样例.xlsx" DBMS=EXCEL REPLACE;
GETNAMES=YES;
quit;
proc sort data=sample;
by 类型;
run;
proc surveyselect data=s out=s3 method=SRS
samprate=sample; /*通过抽样比例数据集进行抽样,samp_table数据集中要包括分层变量 以及每一分层对应的抽样比例或者数量,如果按比例抽样变量必须用_rate_来命名抽样比例,如果是按数量抽样必须用_nsize_来命名抽样数量*/
strata 类型;
run;