I'm creating a simple toy dataset containing date variables with the MMDDYY10. format:
data test;
input id $ ed_from MMDDYY10. ed_to MMDDYY10. ip_from MMDDYY10. ip_to MMDDYY10.;
format ed_from MMDDYY10. ed_to MMDDYY10. ip_from MMDDYY10. ip_to MMDDYY10.;
datalines;
CT0001 05/22/2011 05/22/2011 05/22/2011 05/30/2011
CT0001 06/22/2011 06/22/2011 06/22/2011 06/30/2011
CT0002 07/01/2012 07/02/2012 07/01/2012 07/06/2012
CT0002 07/10/2012 07/10/2012 07/20/2012 07/25/2012
;
run;
However I receive "Invalid data..." error messages when I attempt to run the above code.
Any help identifying what I'm doing wrong is much appreciated!
Thanks,
Robert
try this:
input id $ ed_from:MMDDYY10. ed_to:MMDDYY10. ip_from:MMDDYY10. ip_to:MMDDYY10.;
try this:
input id $ ed_from:MMDDYY10. ed_to:MMDDYY10. ip_from:MMDDYY10. ip_to:MMDDYY10.;
Fantastic, worked beautifully. I wasn't aware we should use colons in the input statement, this is good to know.
Thanks DBailey!
You can use either formatted input with a field size that correspond with the TOTAL column spacing:
input id $ (ed_from ed_to ip_from ip_to) (MMDDYY11.);
or use pointer controls to move the line pointer to the beginning of date fields:
input id $ (ed_from ed_to ip_from ip_to) (+1 MMDDYY10.);
or modified list input with an informat that correspond with the size of the text tokens irrespective of the spacing between them:
input id $ (ed_from ed_to ip_from ip_to) (:MMDDYY10.);
PG
Message was edited by: PG Added an alternative.
Thank you, this is very helpful!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.