求助SAS高手随机选择样本问题
发布:moshushi8928 | 分类:SAS软件培训
关于本站
人大经济论坛-经管之家:分享大学、考研、论文、会计、留学、数据、经济学、金融学、管理学、统计学、博弈论、统计年鉴、行业分析包括等相关资源。
经管之家是国内活跃的在线教育咨询平台!
获取电子版《CDA一级教材》
完整电子版已上线CDA网校,累计已有10万+在读~ 教材严格按考试大纲编写,适合CDA考生备考,也适合业务及数据分析岗位的从业者提升自我。
TOP热门关键词
免费学术公开课,扫码加入![]() |
问题是这样的:现在有个很大的dataset,我们要从中随机找5000个指定变量不同的数据,例如,如果我设var="patient ID", 我就要找5000个不同的patient ID, 而一个Patient ID会在这个dataset中出现很多次,所以随机寻找中要避免两种情况:1.随机寻找了两个相同的观测值(此部分我已经编出)。2. 随机寻找了两个不同的观测值,但他们的patient ID是一样的(此部分未完成)。望各位大牛指点,感激不尽。我的想法是用两个array和几个do while,一个array装distinct Observation, 一个array装distinct patient ID。其实我觉得想法不难,难的是如何用SAS实现。另外,由于sas版本非常旧,用不了proc surveyselect这个过程。以下是我已经完成的代码:
%macro ransample(dsin,dsout,SampleSize,var);(注释:dsin“输入数据集”,dsout“输出数据集”,SampleSize,var“指定变量”)
proc sort data=PDL.&dsin out=a;
by &var;
run;
data randfile;
array PickIts[&SampleSize];
array PickVar[&SampleSize];
do i=1 to &SampleSize;
PickIt=ceil(ranuni(34567)*TotObs);
if PickIt in PickIts then do;
do PickIt=ceil(ranuni(34567)*TotObs) while (PickIt in PickIts);
end;
If _N_=PickIt then call symput('selectvar', &var);
If &selectvar not in PickVar then do;
PickIts=PickIt;
Pickvar=&selectvar;
set a point=PickIt nobs=TotObs;
output;
end;
else do;
(此处不知道该如何构建循环了,假设我们还拿patient ID为例,这个observation虽然没有在装distinct observation
array中出现过,但它的patient ID却之前出现过,所以此观测量不合格,我们要重新random select)
end;
end;
else do;
If _N_=PickIt then call symput('selectvar', &var);
If &selectvar not in PickVar then do;
PickIts=PickIt;
Pickvar=&selectvar;
set a point=PickIt nobs=TotObs;
output;
end;
else do;
(空缺,如上)
end;
end;
stop;
run;
proc sql;
create table PDL.&dsout as
select a.* from a inner join randfile
on a.&var = randfile.&var ;
quit;
%mend ransample;
免流量费下载资料----在经管之家app可以下载论坛上的所有资源,并且不额外收取下载高峰期的论坛币。
涵盖所有经管领域的优秀内容----覆盖经济、管理、金融投资、计量统计、数据分析、国贸、财会等专业的学习宝库,各类资料应有尽有。
来自五湖四海的经管达人----已经有上千万的经管人来到这里,你可以找到任何学科方向、有共同话题的朋友。
经管之家(原人大经济论坛),跨越高校的围墙,带你走进经管知识的新世界。
扫描下方二维码下载并注册APP
您可能感兴趣的文章
人气文章
本文标题:求助SAS高手随机选择样本问题
本文链接网址:https://bbs.pinggu.org/jg/ruanjianpeixun_sasruanjianpeixun_2427594_1.html
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。



