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.
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.