@Fadams12 wrote:
Thank you for your feedback, looking at the data, I don't see X00 's and it is my first time working with this data, apparently someone who worked with this data before was able to flag Co_fire10 =1.
With the code you have shared I would have to say they were doing one of 3 things:
1) Using additional code
2) Using different data
3) A manual step. You can open data set in view mode that allows editing by typing.
Or possibly all three...
Yes, I also use a different data step in addition to the first one. see below.
Data CO_Hosp(where=(COpoisoning=1));
Set 'C:\Users\hjt09632\Documents\SAS Dataset 2022\complete22.sas7bdat';
array DXS[18] $ dx1-dx18;
COyes_step2a10 = 0;
COno_step2b10 = 0;
CO_fire10 = 0;
CO_nonfire_prelim10 = 0;
CO_unknown_prelim1_10 = 0;
do z= 1 to 18;
* sub-step A;
if substr(DXS {z},1,5) IN:('T5801', 'T5804', 'T5811', 'T5814', 'T5891', 'T5894') or
substr(DXS {z},1,6) IN: ('T582X1', 'T582X4', 'T588X1', 'T588X4')
then COyes_step2a10 = 1 ;
* sub-step B;
if substr(DXS {z}, 1,5)IN: ('T5802', 'T5803', 'T5812', 'T5813', 'T5892', 'T5893') or
substr(DXS {z},1,6) IN: ('T582X2', 'T582X3', 'T588X2', 'T588X3')
then COno_step2b10 = 1;
if COyes_step2a10 = 1 or 0 and COno_step2b10 NE 1 then COpoisoning = 1 ;
*differentiate causes: sub-steps C, D, E, F;
* sub-step c;
if substr(DXS {z}, 1,3)IN:('X00', 'X01', 'X02', 'X03', 'X04', 'X05', 'X06', 'X08')
then CO_fire10 = 1;
* sub-step d;
if substr(DXS {z},1,5) in ('T5801', 'T5811', 'T5891') or
substr(DXS {z},1,6) in ('T582X1', 'T588X1')
then CO_nonfire_prelim10 = 1;
if CO_fire10 NE 1 and CO_nonfire_prelim10 = 1 then CO_nonfire10 = 1;
* sub-step e;
if substr(DXS {z},1,5) IN: ('T5804', 'T5814', 'T5894') or
substr(DXS {z},1,6) IN: ('T582X4', 'T588X4')
then CO_unknown_prelim1_10 = 1;
END;
if CO_fire10 ~= 1 and CO_unknown_prelim1_10 = 1 then CO_unknown_prelim2_10 = 1;
if CO_fire10 = 1 and CO_nonfire10 = 1 then CO_unknown_prelim3_10 = 1;
if CO_unknown_prelim2_10 = 1 or CO_unknown_prelim3_10 = 1 then CO_unknown10 = 1;
* sub-step f;
if CO_fire10 = 1 then Cause = 1;*fire related ;
if CO_nonfire10 = 1 then Cause = 2;*not fire related;
if CO_unknown10 = 1 then Cause = 3;*Unknown mechanism or intent;
if CO_fire10 = 1 and CO_nonfire10 = 1 then Cause = 3;
if CO_fire10 = 1 and CO_unknown10 = 1 then Cause = 3;
if CO_nonfire10 = 1 and CO_unknown10 = 1 then Cause = 3;
HealthOutcomeID = 3; /*Step 6: Create according to data dictionary*/
MonthlyHosp = 0; /*Step 7: Create a variable called “MonthlyHosp” and set it to zero for all rows.*/
run;
proc sql ;
create table rr as
select distinct AdmissionMonth
,AgeGroup
, County
, Ethnicity
, Race
, HealthOutcomeID
, MonthlyHosp
, Sex
, YearAdmitted
, sum((Cause=1)) as IncidentCountFire
, sum((Cause=2)) as IncidentCountNonFire
, sum((Cause=3)) as IncidentCountUnknown
from count_CO
group by AdmissionMonth
, AgeGroup
, County
, Ethnicity
, Race
, HealthOutcomeID
, MonthlyHosp
, Sex
, YearAdmitted
;
quit;
data CO_Finalhosp;
RETAIN RowIdentifier AdmissionMonth AgeGroup County Ethnicity HealthOutcomeID
MonthlyHosp Race Sex YearAdmitted;
set rr;
RowIdentifier=_n_;
KEEP RowIdentifier AdmissionMonth AgeGroup County Ethnicity HealthOutcomeID
MonthlyHosp Race Sex YearAdmitted IncidentCountFire IncidentCountNonFire
IncidentCountUnknown ;
run;
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.