Hi,
I have a variable "Age" with Data as;
18-24
15-30
29-54
The variable is Character. How can I convert the range to numeric to calculate age range ie. 18-24 is 6 years.
One way:
age_range = input(scan(age,2,'-'), 3.) - input(scan(age,1,'-'), 3.);
You might want to add 1 to the result, if you decide that 18-24 actually spans 7 years not 6.
data new_age;
set test;
new_age =(INPUT(SCAN(Age, -1), 8.))-(INPUT(SCAN(Age, 1), 8.));
run;
data have;
input age $20.;
dif=-1*input(resolve(cats('%sysevalf(',age,')')),best.);
cards;
18-24
15-30
29-54
;
run;
Very funny @Ksharp!
Yeah. you can do it with any algorithmic expression.
data have;
input age $20.;
dif=input(resolve(cats('%sysevalf(',age,')')),best.);
cards;
18-24
15*30
29/54
;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.