Hi all,
I have a character variable that needs to be converted to numeric. The character <0.001 needs to be converted to 0.001 numeric value.
Data Have:
data have;
input iD nums $;
cards;
1 1.675
2 <0.001
3 3.578
4 <0.00001
;
Would you also have cases of >= or <= or other symbols that need to be accounted for in this situation?
@rajd1 wrote:
Hi all,
I have a character variable that needs to be converted to numeric. The character <0.001 needs to be converted to 0.001 numeric value.
Data Have:
data have; input iD nums $; cards; 1 1.675 2 <0.001 3 3.578 4 <0.00001 ;
@Reeza :
Yes, there might be < or > <= or >=
What will work depends on your data. If you're sure that there can't be numbers in scientific notation then the derivation syntax for nums_new_1
should be suitable.
data have;
input iD nums $;
cards;
1 1.675
2 <0.001
3 3.578
4 <0.00001
;
data want;
set have;
nums_new_1=input(compress(nums,'.+-','kd'),best32.);
nums_new_2=input(compress(nums,'<=> '),best32.);
run;
@Reeza wrote:
Would you also have cases of >= or <= or other symbols that need to be accounted for in this situation?
@rajd1 wrote:
Hi all,
I have a character variable that needs to be converted to numeric. The character <0.001 needs to be converted to 0.001 numeric value.
Data Have:
data have; input iD nums $; cards; 1 1.675 2 <0.001 3 3.578 4 <0.00001 ;
One way might be:
data want; set have; newnum=input(compress(nums, "+-.", "kd"),12.); run;
The compress function removes everything except the + - decimal point and digits (the d option indicates digits, the k keeps instead of removing. Then input converts to numeric. This assumes you don't have more than 12 characters in the resulting numeric value string.
Warning: if for some reason you have exponential notation values such as 1.5E3 in the data the E gets removed and the result would be a missing value. If that is the case you need to check for the presence of the E and treat that string differently (add E to the list of characters "+-.eE" for example)
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.