Hello. I have a data set with 57 character variables that need to be searched for over 100 distinct ICD 9 codes that are character strings. I need to create a new variable=1 if person has at least 1 of the desired codes in any of the 57 variables or variable=0 if none of the codes are in any of the variables. I could use some advice. All I know is that I need to use an array(s) to create the new variable. I have tried the code below, but it gives me a 0 for every observation which I know is wrong. I'm not sure where I am going wrong. Any advice would be appreciated. data test; set qft_int; length diagnosis9 $1379 ; diagnosis9=catx(" ", "ICD9:042", "ICD9:136.3", "ICD9:199.2", "ICD9:238.73", "ICD9:238.76", "ICD9:238.77", "ICD9:238.79", "ICD9:260", "ICD9:261", "ICD9:262", "ICD9:279.00", "ICD9:279.01", "ICD9:279.02", "ICD9:279.03", "ICD9:279.04", "ICD9:279.05", "ICD9:279.06", "ICD9:279.09", "ICD9:279.10", "ICD9:279.11", "ICD9:279.12", "ICD9:279.13", "ICD9:279.19", "ICD9:279.2", "ICD9:279.3", "ICD9:279.4", "ICD9:279.41", "ICD9:279.49", "ICD9:279.50", "ICD9:279.51", "ICD9:279.52", "ICD9:279.53", "ICD9:279.8", "ICD9:279.9", "ICD9:284.09", "ICD9:284.1", "ICD9:284.11", "ICD9:284.12", "ICD9:284.19", "ICD9:288.0", "ICD9:288.00", "ICD9:288.01", "ICD9:288.02", "ICD9:288.03", "ICD9:288.09", "ICD9:288.1", "ICD9:288.2", "ICD9:288.4", "ICD9:288.50", "ICD9:288.51", "ICD9:288.59", "ICD9:289.53", "ICD9:289.83", "ICD9:403.01", "ICD9:403.11", "ICD9:403.91", "ICD9:404.02", "ICD9:404.03", "ICD9:404.12", "ICD9:404.13", "ICD9:404.92", "ICD9:404.93", "ICD9:579.3", "ICD9:585", "ICD9:585.5", "ICD9:585.6", "ICD9:996.8", "ICD9:996.80", "ICD9:996.81", "ICD9:996.81", "ICD9:996.82", "ICD9:996.83", "ICD9:996.84", "ICD9:996.85", "ICD9:996.86", "ICD9:996.87", "ICD9:996.88", "ICD9:996.89", "ICD9:V42.0", "ICD9:V42.1", "ICD9:V42.6", "ICD9:V42.7", "ICD9:V42.8", "ICD9:V42.81", "ICD9:V42.82", "ICD9:V42.83", "ICD9:V42.84", "ICD9:V42.89", "ICD9:V45.1", "ICD9:V45.11", "ICD9:V56.0", "ICD9:V56.1", "ICD9:V56.2", "ICD9:00.18", "ICD9:33.5", "ICD9:33.50", "ICD9:33.51", "ICD9:33.52", "ICD9:33.6", "ICD9:37.5", "ICD9:37.51", "ICD9:41.0", "ICD9:41.00", "ICD9:41.01", "ICD9:41.02", "ICD9:41.03", "ICD9:41.04", "ICD9:41.05", "ICD9:41.06", "ICD9:41.07", "ICD9:41.08", "ICD9:41.09", "ICD9:50.51", "ICD9:50.59", "ICD9:52.80", "ICD9:52.81", "ICD9:52.82", "ICD9:52.83", "ICD9:52.85", "ICD9:52.86", "ICD9:55.69"); immune9=0; retain immune9; array diagnosisimmune{57} PrimaryDiag SecondaryDiag_1-SecondaryDiag_56 ; do i= 1 to dim(diagnosisimmune); if index(diagnosisimmune(i), diagnosis9) then immune9 =1; end; drop i; run;
... View more