I need to convert some of the following values into numberic when it looks like a numberic, based on its appearances.
How can I develop this logic?
data tmp;
length value $ 4;
input value;
cards;
1234
sys
;;
run;
Hi ZRick. I wonder if this helps.
data tmp;
length value $ 4;
input value;
cards;
1234
sys
;;
run;
data flag; set tmp; flag=ifc(anyalpha(value),'string','numeric'); run;
proc print noobs;; run;
K C Wong wrote:
Hi ZRick. I wonder if this helps.
data tmp;
length value $ 4;
input value;
cards;
1234
sys
;;
run;
data flag; set tmp; flag=ifc(anyalpha(value),'string','numeric'); run;
proc print noobs;; run;
You got close but what about E and D for example "1e6"
Unless ZRick's data has such cases ie 1e6 which I dunno about
Yes you don't know.
You could use something like:
data tmp;
length string $ 4;
input string;
number=input(string,?? best.);
cards;
1234
sys
;;
run;
This will convert the string to a numeric value if possible - else number will contain a missing;
Hi..
If you want to create new flags as string and numeric.
data tmp;
length value $ 4;
input value;
cards;
1234
sys
;;
run;
data flag;
set tmp;
string1 = anyalpha(value);
if string1 = 1 then string = value;else number=value; * then string = value;*else value = numeric;
drop string1;
/*put value= flag=;*/
run;
proc print noobs;; run;
Thanks,
Yash
Building on DN and Patrick's input :
data tmp;
length value flag $8;
input value $&;
a = input(value,?? comma8.);
format a best8.;
flag=ifc(missing(a), 'string', 'numeric');
datalines;
1234
-1234
+1234
1.3
1e-3
3d2
4,000
-4,000.9
sys
;
proc print data=tmp noobs; run;
PG
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.