全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1675 4
2015-04-14
一个分类数据,变量x1-x5 变量,值为1-4 ,每个变量都含有缺失,如
x1  x2  x3  x4  x5
1    1    2    3    2
.     1    1    3     4
3    2    .     4     1
.     3    3    .      2
2    .     2    1     .
4    4    .    2     1
1    2    3    1     .
现在想对缺失值进行填补,采用有放回的随机抽样,在已观测到的x1(1  3   2  4   1)中随机抽取一个值对x1中的第一个缺失值填补,再在x1(1  3   2  4   1)中随机抽取一个值对x1中的第二个缺失值填补,依次将所有缺失填补完,SAS程序要怎么实现,谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2015-4-14 17:20:15
%macro missinga(var1,var2,var3);
proc sql;
    create table &var1 as
        select &var1  from a where not missing(&var1.);
quit;
proc surveyselect data=&var1 method=srs n=1 out=&var2.;run;
proc sql;
        select &var1 into:vard  from &var2.;
quit;
data &var3.(keep=&var1.);
        set a;
        if missing(&var1.) then &var1=&vard.;
run;
%mend missinga;
%missinga(x1,x11,x111);
%missinga(x2,x22,x222);
%missinga(x3,x33,x333);
%missinga(x4,x44,x444);
%missinga(x5,x55,x555);
data t;
        merge x111 x222 x333 x444 x555;
run;
二维码

扫码加我 拉你入群

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

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

2015-4-14 22:07:47
gong88123@126 发表于 2015-4-14 17:20
%macro missinga(var1,var2,var3);
proc sql;
    create table &var1 as
谢谢你的回复, 但是你可能没明白我的意思,我是想对每个缺失值进行填补时都进行一次抽取,比如上面的数据,x1里面有两个缺失值,那么生成的x11中应该有两条记录分别替代原有的两个缺失值,而不是用一条记录替代所有的缺失值,而且我想要的是有放回的随机抽样,谢谢
二维码

扫码加我 拉你入群

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

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

2015-4-14 22:07:50
gong88123@126 发表于 2015-4-14 17:20
%macro missinga(var1,var2,var3);
proc sql;
    create table &var1 as
谢谢你的回复, 但是你可能没明白我的意思,我是想对每个缺失值进行填补时都进行一次抽取,比如上面的数据,x1里面有两个缺失值,那么生成的x11中应该有两条记录分别替代原有的两个缺失值,而不是用一条记录替代所有的缺失值,而且我想要的是有放回的随机抽样,谢谢
二维码

扫码加我 拉你入群

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

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

2015-4-15 11:26:38
继续求助  谢谢
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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