Hi, I don't know if I'm answering the below question correctly. I tried but my codes just look weird. I'd like to hear your advice. Thank you very much!
Variable zipcode is read with format$10. It reads zip codes in the form 07417 or 07417-1280 Create variable_9digit. It equals 1 if zipcode has a hyphen separating the fifth and seven digits. Otherwise it equals 0. Write the statements three ways, using the length, index, ad substr functions.
/* using length function*/
data zipcode;
length zipcode $10;
input zipcode ;
cards;
07417
07417-1280
;
run;
DATA zipcode1;
Set zipcode;
if zipcode= '07417-1280' then zipcode2= '1';
else zipcode2= '0';
proc print noobs;
title 'Using length function';
run;
/* using substr function*/
DATA zipcode2;
format zipcode $10.;
zipcode= '07417-1280';
form1 = Substr( zipcode, 1, 5);
if form1= '07417' then newform1='0';
form2 = Substr( zipcode, 1);
if form2= '07417-1280' then newform2= '1' ;
proc print noobs;
title 'Using substr function';
RUN;
/* using index function*/
Data zipcode3;
format zipcode $10.;
zipcode= '07417-1280';
form1 = Substr( zipcode,1, index(zipcode, '-')-1);
if form1= '07417' then newform1= '0' ;
form2 = Substr( zipcode, 1);
if form2= '07417-1280' then newform2= '1' ;
proc print noobs;
title 'Using index function';
RUN;
... View more