data have;
input abc $;
cards;
1.0 MG
0.25#
*1
2.5 UG
run;
data want;
set have;
a1 = compress(abc,'#*','s','a');
run;
I need only the numeric value. while using the compress func an ERROR occurred:
The COMPRESS function call has too many arguments.
Please suggest me any methods to solve.
READ THE DOCUMENTATION!
From the "modifier" part:
k or K keeps the characters in the list instead of removing them.
So you want to keep digits and dots, just use a list of all digits and the dot as second parameter, and k as the third.
data have;
input abc $;
cards;
1.0 MG
0.25#
*1
2.5 UG
;
run;
data want;
set have;
a1 = compress(abc,'0123456789.','k');
run;
Or use a combination of parameters:
data want;
set have;
a1 = compress(abc,'.','kd');
run;
The 2nd argument of compress is a string contains the delimiters or characters to ignore.
There is a 3rd argument with special means. In your case "kd" means keep digits only:
a1 = compress(abc, , 'kd');
You better look at the documentation.
If i use 'kd' in compress then it delete '.' punctuation in (1.5, 2.5, 1.0) so the value should like (15 , 25, 10)
I need value in decimal as same as in my dataset.
READ THE DOCUMENTATION!
From the "modifier" part:
k or K keeps the characters in the list instead of removing them.
So you want to keep digits and dots, just use a list of all digits and the dot as second parameter, and k as the third.
data have;
input abc $;
cards;
1.0 MG
0.25#
*1
2.5 UG
;
run;
data want;
set have;
a1 = compress(abc,'0123456789.','k');
run;
Or use a combination of parameters:
data want;
set have;
a1 = compress(abc,'.','kd');
run;
Thank u so much! @Kurt_Bremser @Shmuel
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.