全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
931 3
2022-03-27
我的调查问卷收回来了。有一个问题的答案要么选1,要么选2,或3,或4都可以。
但是还是有些人不回答。我想用1,2,3,4 随机把缺失值替代一下,但不知道程序 怎么写。
如果只用某一个数字来替代,我还可以,但4个数字随机,我就不会了。
我用网上找的试了一下,发现下面这段语句运行后,结果是“3”替代了全部缺失值,导致答案“3”的频率增加了很多,其它答案1,2,4, 的回答频率都没有变。

data freq_2;
set freq_1;
retain z1 0;
retain z2 0;
retain z3 0;
retain z3 0;
if 变量=1 then z1+1;
if 变量=2 then z2+1;
if 变量=3 then z3+1;
if 变量=4 then z4+1;
run;
proc sql;
select max(z1)/(max(z1)+max(z2)+max(z3)+max(z4)) into : t1 from freq_2;
select max(z2)/(max(z1)+max(z2)+max(z3)+max(z4)) into : t2 from freq_2;
select max(z3)/(max(z1)+max(z2)+max(z3)+max(z4)) into : t3 from freq_2;
select max(z4)/(max(z1)+max(z2)+max(z3)+max(z4)) into : t4 from freq_2;
quit;
%put &t1 &t2 &t3 &t4;

data freq_2;
set freq_2;
if 变量=.  then 变量=rantbl(1234,&t1,&t2,&t3,&t4);
run;


二维码

扫码加我 拉你入群

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

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

全部回复
2022-3-27 15:52:57
均匀分布吗:
data test;
    do i=1 to 1000;
    a=int(1+4*uniform(20220327));
    output;
    end;
run;

proc freq data=test;
    table a;
run;
二维码

扫码加我 拉你入群

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

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

2022-3-29 20:48:33
将缺失数据填补为一个完全随机的值?为什么要这么做呢?
二维码

扫码加我 拉你入群

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

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

2022-7-23 14:37:41
whymath 发表于 2022-3-29 20:48
将缺失数据填补为一个完全随机的值?为什么要这么做呢?
因为这些缺失只是上百个变量其中一个不怎么重要变量的数据,但我有强迫症,我希望数据都是完整的。想用某一个范围内的数字把缺失值补全。
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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