Revision: 11184
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at January 27, 2009 12:28 by webonomic
Initial Code
data mydata; input value $; cards; 1023442 92z89 abcd 5231295 09CX42 9e122 12E3 98722 ; run; *Suggestion #1 - simple deleting; *Keep only numeric values; data want1; set mydata; if anyalpha(value)>0 then delete; run; *Suggestion #2 - using PRXMATCH function; data want2; set mydata; if prxmatch("/[a-zA-Z]/",value)=0; /* Searches for a pattern match and returns the position at which the pattern is found */ run; *Suggestion #3; /* Do you want to delete the letters? Also, it's not a good idea to just simply delete data without knowing the value. You may find you want to keep those observations. So why not try using the New Compress function in SAS9 or above and create a new variable? */ data want3a; set mydata; var = Compress (value, ,"Kd") ; *Kd is keep digits; run; *SAS 8; data want3b; set mydata; var = Compress (value, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); run; *Suggestion #4; /* How about 12e3? It contains an alpha character but is nevertheless valid as the external representation of a numeric value? If so, you need to keep numbers stated in scientific notation, then try the following method:*/ %LET N_Errors = %SYSFUNC(GETOPTION(Errors)); OPTIONS ERRORS=0; data want4; set mydata; if missing(input(value,best12.)) then delete; OPTIONS ERRORS=&N_Errors; run;
Initial URL
http://jaredprins.squarespace.com/blog/2009/1/27/how-to-delete-observations-containing-characters.html
Initial Description
How to delete observations containing characters (e.g. 92z89 or abcd) and only keep the ones with numeric values.
Initial Title
Delete observations containing characters and keep numeric values only
Initial Tags
Initial Language
SAS