I am trying to calculate the difference in days between dates. More specifically between the values of variable Date and January 1, 2000.
Here it is my code and I have attached the data set:
PROC IMPORT OUT= work.NBA
DATAFILE= "/folders/myfolders/NBA60.txt"
DBMS=CSV REPLACE;
DELIMITER=',';
GETNAMES=YES;
RUN;
PROC PRINT DATA=work.NBA;
RUN;
PROC PRINT DATA = NBA;
FORMAT Date WORDDATE. ;
RUN;
DATA NBA;
fecha = intck('day', DATE, "01Jan2000"d);
RUN;
PROC PRINT DATA=NBA;
RUN;
You forgot the SET statement in your data step.
DATA NBA_DURATION;
set NBA;
fecha = intck('day', DATE, "01Jan2000"d);
RUN;
You forgot the SET statement in your data step.
DATA NBA_DURATION;
set NBA;
fecha = intck('day', DATE, "01Jan2000"d);
RUN;
Your data has some dates before year 2000, and some after. So when you calculate the difference, which years should show a negative difference and which a positive difference?
Your formula calculates the number of days as negative for years after 2000. It's easy to reverse that, and you don't need any functions to do it:
fecha = date - '01jan2000'd;
And yes, you do need a SET statement.
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.