hmh3226@163.com 发表于 2020-4-1 22:25 
谢谢!方案二帮上大忙了。老师,我想再问一下,实际过程中level并不会都是5级,如何标准化?
代码如下: ...
回答你第二个问题:方法可能原始了一点,没有高级的语法,供参考。
data work.aaa;
input soc: $20. pt $ level $ n;/*这一行发帖子后,SOC和pt后面的s符号显示有问题*/
cards;
感染及侵入类疾病 瘙痒 1级 5
感染及侵入类疾病 瘙痒 2级 5
感染及侵入类疾病 瘙痒 3级 2
感染及侵入类疾病 瘙痒 4级 3
感染及侵入类疾病 瘙痒 5级 5
感染及侵入类疾病 湿疹 1级 5
感染及侵入类疾病 湿疹 2级 5
感染及侵入类疾病 湿疹 3级 5
感染及侵入类疾病 湿疹 5级 3
胃肠道疾病 呕吐 3级 1
胃肠道疾病 呕吐 2级 5
胃肠道疾病 腹泻 1级 2
;
run;
data work.bbb;
n=0;
do pt='瘙痒', '湿疹';
do level='1级', '2级', '3级', '4级', '5级';
soc='感染及侵入类疾病';
output;
end;
output;
end;
do pt='呕吐', '腹泻';
do level='1级', '2级', '3级', '4级', '5级';
soc='胃肠道疾病';
output;
end;
output;
end;
run;
data work.ccc;
set work.aaa work.bbb;/*原始数据放前面,补充数据放后面*/
run;
proc sort data=work.ccc out=work.ddd nodupkey; by soc pt level; run;