Hi,
I have a dataset in which I've created an age variable using a date of birth variable and an "age as of" variable (which I created as well), like this:
/*Calculate age from DOB*/
data want_age;
set have;
ageasof='01NOV2012'D;
run;
DATA create_age;
set want_age;
age=floor(yrdif(datepart(dob), ageasof, age));
run;
The code runs fine and seems to calculate age correctly; however, I get a message after the second step saying that Numeric values have been converted to character values. I want age to be a numeric variable, so this is problematic. However, when I run a proc contents, it says age is already numeric, and when I go to the next step which uses values of age to create age categories, I treat age as numeric and it works fine. I'm confused about why I'm getting the message re: age being converted to character values when that doesn't actually seem to be the case.
Any help is much appreciated.
If you're using the third parameter to YRDIF, it should be character. Try putting "age" in quotes inside the function.
If you're using the third parameter to YRDIF, it should be character. Try putting "age" in quotes inside the function.
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
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.