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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.