全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1979 2
2019-04-10
求问大家这么个问题,现在想用sas做一个分析,有几个变量,“drug-1”, “drug-2”,“drug-3”,“drug-4”,数值均为(0,1),0为未使用该药,1为使用该药品,现在想重新编程得到一个新的变量“new-drug-dose”使得drug-1=1,new-drug-dose=1。 drug-1和drug-2同为1,或者drug-1和drug-3同为1时,也可理解为drug 1+2 或1+3,new-drug-dose=2。

当drug-1,drug-2,drug-3 同时为1,或者drug-1,drug-2,drug-4 同时为1时,即drug 1+2+3 或1+2+4时,new-drug-dose=3。

比如:
drug-1 drug-2 drug-3 drug-4
001 1 0 0 0
002 1 0 1 0
003 1 1 0 1
004 0 0 0 0


返回得到:
new-drug-dose
001 1
002 2
003 3
004 .


用if then判断写了半天好像也没理顺,而且返回的值一直有问题,求问有什么好方法可以得到这个新变量?谢谢
二维码

扫码加我 拉你入群

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

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

全部回复
2019-4-11 11:35:41
data test;
   input id $ drug_1 drug_2 drug_3 drug_4;
cards;
001 1 0 0 0
002 1 0 1 0
003 1 1 0 1
004 0 0 0 0
;
run;

data want;
   set test;
   tmp=cats(of drug_:);
   if tmp in (1110 1101) then new_drug_dose=3;
   else if tmp in(1100 1010) then new_drug_dose=2;
   else if tmp in(1000) then new_drug_dose=1;
   else call missing(new_drug_dose);
   drop tmp;
run;
二维码

扫码加我 拉你入群

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

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

2019-4-20 00:09:44
l1i2n3i4n5g 发表于 2019-4-11 11:35
data test;
   input id $ drug_1 drug_2 drug_3 drug_4;
cards;
非常感谢!!
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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