I have a variable which has values like >=500, >75 in addition to truly numeric values in integers.
I need to convert it to a numeric variable while ignoring the =, <= etc.
The SAS input function does not work in this case.
Thank you.
Here is a sample set
data what;
input $lab;
datalines;
<=500
<75
=<100
2000
300
400
10
;
run;
Hi, you can use a compress function here in ways it fits best and if the variable is non numeric use the input function to convert it to numeric.
Example: kk = compress(lab,"<= "); /*Here it will compress <= and blanks in the variable*/
OR
kk = compress(lab,"1234567890","k") /* This will keep only 1234567890 values in the variable and it you have a decimal you can include . in the list*/
Use of input function: jj = input(kk,best12.); /***Assigning informat to the variable******/
format jj best12.; /*****Output/Display format***************/
Hope that helps!
Regards,
Somi
Hi, you can use a compress function here in ways it fits best and if the variable is non numeric use the input function to convert it to numeric.
Example: kk = compress(lab,"<= "); /*Here it will compress <= and blanks in the variable*/
OR
kk = compress(lab,"1234567890","k") /* This will keep only 1234567890 values in the variable and it you have a decimal you can include . in the list*/
Use of input function: jj = input(kk,best12.); /***Assigning informat to the variable******/
format jj best12.; /*****Output/Display format***************/
Hope that helps!
Regards,
Somi
I tried substr function. It is a longer way of doing this job.
if substr(result, 1, 2) in("<=","=<",">=")then results=substr(result,3,10);
else if substr(result,1,1)="<" then results=substr(result, 2,10);
else results=result;
results1=input(results,best12.);
Your code totally works though.
Thanks!
K is a modifier and is used for keep. Also, in your method you could do it when obs are less as you can look and check where is the position of <>=, and impossible when their are thousands of obs.
Use this link:
SAS(R) 9.2 Language Reference: Dictionary, Fourth Edition
Rate me please if I answered you query.
Regards,
Somi
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.