楼主: wenxiaopiao
4550 3

SAS data步骤 循环 [推广有奖]

  • 0关注
  • 0粉丝

本科生

46%

还不是VIP/贵宾

-

威望
0
论坛币
118 个
通用积分
3.1474
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1491 点
帖子
7
精华
0
在线时间
182 小时
注册时间
2010-4-4
最后登录
2022-2-18

楼主
wenxiaopiao 发表于 2013-11-21 10:01:59 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币

问题是:

病案首页的手术编码有7个。一台手术的手术码可能由几个手术(ssjczbm1 ,ssjczbm2,ssjczbm3,ssjczbm4,ssjczbm5,ssjczbm6,ssjczbm7)编码组成。

我怎么能用更快的方式,用循环等等书写  7个手术码?

变量的意义:

①  JBDN(主要诊断的ICD-10 编码);

②  ssjczbm1 ,ssjczbm2,ssjczbm3,ssjczbm4,ssjczbm5,ssjczbm6,ssjczbm7  ( 手术编码)

例如:

急性心肌梗死的提取条件是:主要诊断为I21、I22编码为急性心肌梗死,排除编码为心脏手术的患者。

(substr(JBDM,1,3)="I21" OR substr(JBDM,3)= "I22")AND (substr手术码,1,2)^="35"  OR substr(手术码,1,2)^="36"  OR substr (手术码,1,2)^="37" )

怎么能快速的从这样的书写


  
        

/*binghzong=1 急性心肌梗死    */

   

data b1;

   

set shuju;

   

if

   

      ( substr(JBDM,1,3)='I21' OR    substr(JBDM,1,3)='I22' )  

   

AND

   

      ( substr(ssjczbm1,1,2)^="35"  OR substr(ssjczbm1,1,2)^="36"  OR substr(ssjczbm1,1,2)^="37"  )

   

AND  cykb="04"   

   

then    bingzhong=1;

   

run;

   

   
   
   


转变成有7个手术码

  
        

/*依次给予病种赋值*/

   

/*binghzong=1 急性心肌梗死    */

   

data b1;

   

set shuju;

   

if

   

      (substr(JBDM,1,3)='I21' OR    substr(JBDM,1,3)='I22' )  

   

AND

   

      ( substr(ssjczbm1,1,2)^="35"  OR substr(ssjczbm1,1,2)^="36"  OR substr(ssjczbm1,1,2)^="37" OR

   

        substr(ssjczbm2,1,2)^="35"  OR substr(ssjczbm2,1,2)^="36"  OR substr(ssjczbm2,1,2)^="37" OR

   

        substr(ssjczbm3,1,2)^="35"  OR substr(ssjczbm3,1,2)^="36"  OR substr(ssjczbm3,1,2)^="37" OR

   

        substr(ssjczbm4,1,2)^="35"  OR substr(ssjczbm4,1,2)^="36"  OR substr(ssjczbm4,1,2)^="37" OR

   

        substr(ssjczbm5,1,2)^="35"  OR substr(ssjczbm5,1,2)^="36"  OR substr(ssjczbm5,1,2)^="37" OR

   

        substr(ssjczbm6,1,2)^="35"  OR substr(ssjczbm6,1,2)^="36"  OR substr(ssjczbm6,1,2)^="37" OR

   

        substr(ssjczbm7,1,2)^="35"  OR substr(ssjczbm7,1,2)^="36"  OR substr(ssjczbm7,1,2)^="37"

   

       )

   

AND  cykb="04"   

   

then    bingzhong=1;

   

run;

   
   
   


因为我有很多病种,

面的胰腺切除术提取的条件是

(SUBSTR(手术码,1,5)>="42.40" AND SUBSTR(手术码,1,5)<="42.42")

OR (SUBSTR(手术码,1,5)>="42.51" AND SUBSTR(手术码,1,5)<="42.56")

OR (SUBSTR(手术码,1,5)>="42.58" AND SUBSTR(手术码,1,5)<="42.59")

OR (SUBSTR(手术码,1,5)>="42.61" AND SUBSTR(手术码,1,5)<="42.69")

/*binghzong=25 胰腺切除术*/

data b25;

set shuju;

if  

(

       ( substr(ssjczbm1,1,5)>="42.40" AND  substr(ssjczbm1,1,5)<="42.42" )

    OR ( substr(ssjczbm1,1,5)>="42.51" AND  substr(ssjczbm1,1,5)<="42.56" )

    OR ( substr(ssjczbm1,1,5)>="42.58" AND  substr(ssjczbm1,1,5)<="42.59" )

    OR ( substr(ssjczbm1,1,5)>="42.61" AND  substr(ssjczbm1,1,5)<="42.69" )

)

AND cykb="04"

then bingzhong=25;

run;

我怎么能快速的写上ssjczbm1 ,ssjczbm2,ssjczbm3,ssjczbm4,ssjczbm5,ssjczbm6,ssjczbm7   这7个手术码?

有些手术的条件很多的,写上一个手术码已经很长了,囊括7个手术码实在很让人抓狂。


二维码

扫码加我 拉你入群

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

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

关键词:data步 Data SUBSTR 急性心肌梗死 subs 心肌梗死 心脏手术

沙发
wenxiaopiao 发表于 2013-11-21 11:53:48
变量的意义:
①        JBDN(主要诊断的ICD-10 编码);   错了  ,应该是 JBDM。

藤椅
jingju11 发表于 2013-11-22 05:05:13
substr(ssjczbm1,1,2)^="35"  OR substr(ssjczbm1,1,2)^="36"  OR substr(ssjczbm1,1,2)^="37"
这是个永远成立的条件.
京剧

板凳
邓贵大 发表于 2013-11-22 23:11:58
Be still, my soul: the hour is hastening on
When we shall be forever with the Lord.
When disappointment, grief and fear are gone,
Sorrow forgot, love's purest joys restored.

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-29 15:32