Hi! I'm looking for help with this array. I want to check multiple variables (Secondarydiagnosis1-20, Procedure1-20, and ProcedureHCPCS_1-13) for a number starting with '493'. If it begins with '493' then new variable asthma=1. I submitted this code but it is taking a long time to process, so I'm sure there is an error! Help is appreciated!
data asthma2.asthma_only;
set asthma2.fyall_EXCL_F;
asthma=0;
array dx(*)secondarydiagnosis2-secondarydiagnosis20;
do i= 1 to dim(dx);
if dx(i) =: '493' then asthma=1;
array proc(*) procedure1-procedure20;
do i=1 to dim(proc);
if proc(i)=:'493' then asthma=1;
array HCPCS(*) ProcedureHCPCS_1-ProcedureHCPCS_13;
do i=1 to dim(HCPCS);
if hcpcs(i)=:'493' then asthma=1;
end;
end;
end;
run;
Yes, your DO loops should not be nested. Moving a few END statements would work:
data asthma2.asthma_only;
set asthma2.fyall_EXCL_F;
asthma=0;
array dx(*)secondarydiagnosis2-secondarydiagnosis20;
do i= 1 to dim(dx);
if dx(i) =: '493' then asthma=1;
end;
array proc(*) procedure1-procedure20;
if asthma=0 then do i=1 to dim(proc);
if proc(i)=:'493' then asthma=1;
end;
array HCPCS(*) ProcedureHCPCS_1-ProcedureHCPCS_13;
if asthma=0 then do i=1 to dim(HCPCS);
if hcpcs(i)=:'493' then asthma=1;
end;
run;
Yes, your DO loops should not be nested. Moving a few END statements would work:
data asthma2.asthma_only;
set asthma2.fyall_EXCL_F;
asthma=0;
array dx(*)secondarydiagnosis2-secondarydiagnosis20;
do i= 1 to dim(dx);
if dx(i) =: '493' then asthma=1;
end;
array proc(*) procedure1-procedure20;
if asthma=0 then do i=1 to dim(proc);
if proc(i)=:'493' then asthma=1;
end;
array HCPCS(*) ProcedureHCPCS_1-ProcedureHCPCS_13;
if asthma=0 then do i=1 to dim(HCPCS);
if hcpcs(i)=:'493' then asthma=1;
end;
run;
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.