Hello,
Could anyone please explain how SAS processes the following code :
Raw data file (Text file) data :
Ruth 39 11 (39 starts at Col7 and 11 at Col10)
Jose 32 22
Sue 30 33
John 40 44
DATA STEP :-
data new_1;
infile 'test1.txt';
INPUT EMPLOYEE_NAME $ 1-4;
If employee_name='Ruth' then input idnum 10-11;
else input age 7-8;
run;
OUTPUT :-
employee_name=Ruth idnum=22 age=. _ERROR_=0 _N_=1
employee_name=Sue idnum=. age=40 _ERROR_=0 _N_=2
NOTE: The data set WORK.new_1 has 2 observations and 3 variables.
I am not able to understand why SAS did not give output for Jose and John.
Thank you.
Each INPUT statement, when it closed by semicolon (;), reads one line and is ready to read the following one.
In order to stay on same line and read more variables from it, you end the read statemnet by: @; like next code:
data want;
infile datalines;
input employee_name $ @;
if employee_name = 'Ruth'
then input idnum 10-11;
else input age 7-8;
datalines;
Ruth 39 11
Jose 32 22
Sue 30 33
John 40 44
; run;
Each INPUT statement, when it closed by semicolon (;), reads one line and is ready to read the following one.
In order to stay on same line and read more variables from it, you end the read statemnet by: @; like next code:
data want;
infile datalines;
input employee_name $ @;
if employee_name = 'Ruth'
then input idnum 10-11;
else input age 7-8;
datalines;
Ruth 39 11
Jose 32 22
Sue 30 33
John 40 44
; run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.