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