BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
daisy6
Quartz | Level 8

Hello

I have character strings which including percentage and numbers. how do I convert them into numeric data?

my data is 

var

45.5%

34

23.64%

23

44.56%

798

 

I use the code:

data a;

set a;

if var=:"%" then var1=input(var,percent8.);

else var1=input(var,best8.);

run;

But it does not work.

Thanks a lot!

1 ACCEPTED SOLUTION

Accepted Solutions
Jagadishkatam
Amethyst | Level 16

I tried as below and it works

 

data have;
input var$10.;;
cards;
45.5%
34
23.64%
23
44.56%
798
;

data want;
set have;
if index(var,'%') then new=input(var,percent.);
else new=input(var,best.);
run;
Thanks,
Jag

View solution in original post

3 REPLIES 3
Jagadishkatam
Amethyst | Level 16

I tried as below and it works

 

data have;
input var$10.;;
cards;
45.5%
34
23.64%
23
44.56%
798
;

data want;
set have;
if index(var,'%') then new=input(var,percent.);
else new=input(var,best.);
run;
Thanks,
Jag
Reeza
Super User

The =: only checks if the variables start with that character string, not contains. ie does it start with a percentage sign. To check if hte variable contains a % sign you would use FIND or INDEX. 

How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 14163 views
  • 2 likes
  • 3 in conversation