全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
948 5
2021-11-26
元数据 SAS code


SAS code:

data diabetes;
set Tmp5.Dad;
diabetes_flag=0;
array HLTH_DX_CODE{25} HLTH_DX_CODE_1-HLTH_DX_CODE_25;
do i=1 to 25;
if HLTH_DX_CODE_{i} in ('E10','E11','E12','E13','E14')
then diabetes_flag=1;
end;
run;

想要的到根据ICD-10 找到所有确诊糖尿病的病人 每一个病人有25 个 诊断结果
我试了一下这个SAS 程序 但是跑出来的数据所有的观测都是diabetes_flag=0...
求大神指点谢谢了!





二维码

扫码加我 拉你入群

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

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

全部回复
2021-11-26 07:06:56
参考
二维码

扫码加我 拉你入群

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

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

2021-11-26 11:07:38
if HLTH_DX_CODE_{i}
改为
if HLTH_DX_CODE{i}
再试试....
二维码

扫码加我 拉你入群

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

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

2021-11-30 13:21:59
HXAI102230 发表于 2021-11-26 11:07
if HLTH_DX_CODE_{i}
改为
if HLTH_DX_CODE{i}
已解决谢谢 用的是substr
二维码

扫码加我 拉你入群

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

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

2021-12-5 22:41:17
你写的语法,在IN后面加上 : 即可,如果用IN意味者要完全符合,用IN: 意思是部分符合
所以你原来写的IN ('E10'...),要E10才会被筛选出来,如果是E10.1就不会被筛出来,
若用了IN: 如下,就可以完成

data diabetes;
set Tmp5.Dad;
diabetes_flag=0;
array HLTH_DX_CODE{25} HLTH_DX_CODE_1-HLTH_DX_CODE_25;
do i=1 to 25;
if HLTH_DX_CODE_{i} in: ('E10','E11','E12','E13','E14')
then diabetes_flag=1;
end;drop i;
run;

二维码

扫码加我 拉你入群

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

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

2021-12-11 08:09:11
elisetam 发表于 2021-12-5 22:41
你写的语法,在IN后面加上 : 即可,如果用IN意味者要完全符合,用IN: 意思是部分符合
所以你原来写的IN ( ...
谢谢大佬
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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