全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2858 15
2010-07-24
悬赏 50 个论坛币 未解决
假设现在又数据集A,只含有变量X,观测个数为10个,首先采用有放回抽样的方式抽取10个观测,(当然有些观测可能多次被抽取,有的可能一次都没有被抽取)形成数据集为A1,把这个过程进行比如20次,依次吧这些数据集记为A2,A3.....A20。现在的要求是:如何找出这20个数据集中不包含某个观测,比如说就A1而言,如何判断他是否含有第1、第2。。。 第10个观测,对这20个都进行判断,然后把不包含第一个观测的数据集合在一起形成一个新的数据集,把不包含第二个观测的数据集合在一起形成一个新的数据集,等等一直进行到把不包含第10个观测的数据集合在一起形成一个新的数据集。谢谢指教。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2010-7-24 21:44:14
!!!!!!!!!!!!!!!!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-24 23:22:03
复制代码
没有在sas上试运行,如果有错误可以改改。
思路是:把原始数据重复20次,重复的次序可用为抽样的分层。所以经过放回性的分层抽样(层数20),即相当于对原始数据抽样20次。在抽样输出中,不包含某某观测,等于每一层中包含其他的观测的数目为10.比如如果数据不包括观测1,即为包括2,3, ---, 10 的观测数为总观测数(此为10)。两个宏只是方便书写,没有重复运算的功能。最后的数据是result1.。。result10, 其中result1为不包括原观测1的数据。。。其中,s为抽样顺序(层), _n为原观测的顺序标记,x即为原观测。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-25 00:34:59
data crackman;
do i=1 to 10;
x=ranuni(10);
output;
end;
format x f8.2;
run;
%macro crackman1;
%do n=1 %to 10;
proc sql noprint;
select _name_ into:name separated by " "  from tb where col&n.=.;
quit;
data B&n.;
set &name.;
run;
%end;
%mend crackman1;
%macro crackman(seed);
%do k=1 %to 20;
proc surveyselect data=crackman  method=urs n=10 seed=%eval(&seed.*&k.) out=A&k. noprint;
run;
proc sort data=A&k. out=A&k.;
by i;
run;
data B&k.;
merge crackman(drop=x) A&k.(rename=(x=A&k.) drop=NumberHits);
by i;
run;
%end;
data B;
merge b1-b20;
by i;
run;
proc transpose data=B(drop=i) out=TB;
var _all_;
run;
%crackman1;
%mend crackman;
%crackman(55);
/*对程序有异议的欢迎交流*/
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-25 00:35:14
答案在B1-B20里面
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2010-7-25 00:45:20
crackman 发表于 2010-7-25 00:35
答案在B1-B20里面
应该是10个数据集啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群