LISTSERV at the University of Georgia
Menubar Imagemap
Home Browse Manage Request Manuals Register
Previous messageNext messagePrevious in topicNext in topicPrevious by same authorNext by same authorPrevious page (July 2004, week 4)Back to main SAS-L pageJoin or leave SAS-L (or change settings)ReplyPost a new messageSearchProportional fontNon-proportional font
Date:         Mon, 26 Jul 2004 23:10:31 -0400
Reply-To:     Howard Schreier <Howard_Schreier@ITA.DOC.GOV>
Sender:       "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From:         Howard Schreier <Howard_Schreier@ITA.DOC.GOV>
Subject:      Re: Position in a String

I think you want to use the VERIFY function. If the stored length of your variable is 4, it is simply

if verify(badnum,'0123456789');

If BADNUM is longer, you have to allow for the padding which is stored. Try

if verify(substr(badnum,1,4),'0123456789') or length(badnum)>4;

In my earlier post I meant of course to type

if compress(badnum) = '23';

On Mon, 26 Jul 2004 19:53:46 -0700, x x <sas_user2000@YAHOO.COM> wrote:

>> Are you trying to identify all records which violate >> your validation rule (4 digits), using the single 9 >> simply as an example, or are you trying to >> differentiate cases among bad values (eg, single 9 >> versus two 9's, or single 8)? >> If you are trying to standardize by eliminating >> insignificant blanks, and if some of the values to >> be processed contain two or three digits and >> possibly embedded blanks, use the COMPRESS function. >> For example >> if compress badnum = '23'; >> will dredge not only '23' but '2 3' and ' 23'. > >That is precisely what i want to do. As you say, not >only I need to scan for values that violate the 4 >digit rule and as in your example above but I also >need to identify any posible violation of that rule. >The purpose is to identify and locate the errots adn >if possible clean up and/or massage the data to be >used. >I dont need to identify blanks. > >thank you > >Hernan > >> >4 digit number entered as a character. >> >Due to data entry error the field may have 1, 2, or >> 3 >> >digits and in any position. ie "9 " or " 9 " or >> " >> >9 " or " 9". >> >I do have a list of those numbers and i need to >> know >> >what record they belong to but not knowing in what >> >position the number or numbers may be I was >> wondering >> >if there is a simpeler method that can look for the >> >number or numbers any of the 4 positions in the >> field? >> > >> >I have been using the following for each position >> >which is time consuming. Is there an easier way? >> > >> > >> >data temp; >> >set numberslist; >> >if badnum ="9 " or badnum = " 9 " or badnum=" 9 >> " >> >or badnum= " 9"; >> >run; >> > >> > >> >Cheers >> > >> > >> > >> >__________________________________ >> >Do you Yahoo!? >> >New and Improved Yahoo! Mail - 100MB free storage! >> >http://promotions.yahoo.com/new_mail >> > > > > >__________________________________ >Do you Yahoo!? >Yahoo! Mail - 50x more storage than other providers! >http://promotions.yahoo.com/new_mail


Back to: Top of message | Previous page | Main SAS-L page