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.
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.