SAS中文论坛

标题: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值? [打印本页]

作者: shiyiming    时间: 2010-7-3 22:20
标题: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?
不想用随机数,该怎么用proc surveyselect 来抽取这样一个有条件的随机取样呢?

要求从A,B组各抽25%条出来,抽出的观察值放数据集ex1中,剩下的放ex2中。

样本数据如下:
data ex;
input  group $   var1- var4;
cards;
A  1 2 3 4
A 2 3 4 5
A 3 4 5 6
A 4 5 6 7
A 5 6 7 8
A 6 7 8 9
A 7 8 9 10
A 8 9 10 11
A 9 10 11 12
B 10 11 12 13
B 11 12 13 14
B 12 13 14 15
B 13 14 15 16
B 14 15 16 17
B 15 16 17 18
B 16 17 18 19
B 17 18 19 20
B 18 19 20 21
B 19 20 21 22
B 20 21 22 23
B 21 22 23 24
;

谢谢
作者: shiyiming    时间: 2010-7-4 01:20
标题: Re: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?
proc surveyselect data=ex(where=(group="A")) method=srs percent=0.25 out=ex11;
run;
proc surveyselect data=ex(where=(group="B")) method=srs percent=0.25 out=ex12;
run;
data ex1;
set ex11 ex12;
run;
作者: shiyiming    时间: 2010-7-4 02:59
标题: Re: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?
是不是100个groups你要写100次?
用STRATA STATEMENT + SAMPRATE=sas-data-set option
作者: shiyiming    时间: 2010-7-4 11:52
标题: Re: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?
[code:12u2uj23]proc sort ;
by group;
run;
proc surveyselect data=ex rate=0.25   outall  out=ex;
    strata group ;
   run;
data ex1 ex2;
set ex;
if selected then output ex1; else output ex2;
keep  group var1-var4;
run;[/code:12u2uj23]
作者: shiyiming    时间: 2010-7-4 12:07
标题: Re: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?
谢谢了
学习一下




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2