楼主: tylerconan
715 3

[问答] 用调查问卷的答案“1,2,3,4,5”来代替缺失值 [推广有奖]

  • 10关注
  • 0粉丝

硕士生

50%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
7.1849
学术水平
0 点
热心指数
3 点
信用等级
0 点
经验
3578 点
帖子
92
精华
0
在线时间
113 小时
注册时间
2007-11-14
最后登录
2024-3-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我的调查问卷收回来了。有一个问题的答案要么选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;


二维码

扫码加我 拉你入群

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

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

关键词:调查问卷 缺失值

沙发
乐天天12300 发表于 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;
已有 1 人评分经验 收起 理由
eijuhz + 20 精彩帖子

总评分: 经验 + 20   查看全部评分

使用道具

藤椅
whymath 发表于 2022-3-29 20:48:33 |只看作者 |坛友微信交流群
将缺失数据填补为一个完全随机的值?为什么要这么做呢?

使用道具

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

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 15:45