SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 742|回复: 4
打印 上一主题 下一主题

怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2010-7-3 22:20:19 | 只看该作者

怎么从每组数据中随机抽取一定比例(如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
;

谢谢
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2010-7-4 01:20:32 | 只看该作者

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;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2010-7-4 02:59:06 | 只看该作者

Re: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?

是不是100个groups你要写100次?
用STRATA STATEMENT + SAMPRATE=sas-data-set option
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2010-7-4 11:52:03 | 只看该作者

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]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2010-7-4 12:07:49 | 只看该作者

Re: 怎么从每组数据中随机抽取一定比例(如25%)或数目的观察值?

谢谢了
学习一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2026-2-4 04:59 , Processed in 0.069575 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表