I have the following the DATASET, I have put 2 spaces between the values of ID & Date and Date & Flag. I am not getting the desired result but the year (i.e. 16 is getting assigned to the FLAG variable) WHEREAS if I am putting only 1 space between ID & Date and Date & Flag then my answer is as desire. Please explain why this is happening.
data readin ;
input id date ddmmyy8. flag $ ;
format date ddmmyy8. ;
cards;
1 30/12/16 Y
1 30-08-17 N
1 31-08-18 N
2 30-06-16 Y
2 31-12-18 N
;run;
You are using formatted INPUT, but you have columns that are separated by a delimiter (blank). For this, you need list INPUT.
To use list input with informats, you need to use the colon modifier on the informats:
data readin;
input id date :ddmmyy8. flag $;
format date ddmmyy8.;
cards;
1 30/12/16 Y
1 30-08-17 N
1 31-08-18 N
2 30-06-16 Y
2 31-12-18 N
;
You are using formatted INPUT, but you have columns that are separated by a delimiter (blank). For this, you need list INPUT.
To use list input with informats, you need to use the colon modifier on the informats:
data readin;
input id date :ddmmyy8. flag $;
format date ddmmyy8.;
cards;
1 30/12/16 Y
1 30-08-17 N
1 31-08-18 N
2 30-06-16 Y
2 31-12-18 N
;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.