DATA Step, Macro, Functions and more

How to select observations of specified length

Reply
User
Posts: 1

How to select observations of specified length

I have a large data set with a column called ‘identifier.’ About 90% of cases include a 7 digit ID in the identifier column. For the remaining 10% of cases, however, there wasn’t a 7 digit ID available, so the person who created the data set made up her own faux ID by concatenating address and zip code. I need to split out the “true” IDs so I can use them to merge with another file. I want to leave the ‘identifier’ column as is, since the faux IDs may be helpful in some circumstances, but create a new numeric column called ID that only includes the 7 digit ID numbers (and leaves the rest blank). I’m very new to SAS, so I’m sure there’s a simple solution but I just don’t know it! I’ve tried using trim and subst commands but I just can’t get this to work.

 

Here's an example of the data I have to work with (the final column is the result I’m looking for):

 

Identifier                        address               zip            ID

1234567                         240 Main Ave.      44230       1234567

7654321                         800 Elm St.          43240        7654321

211980thSt43215           22119 80th St.      43215        .

 

Thanks in advance for any help you can give.

 

Susan

Super User
Posts: 2,078

Re: How to select observations of specified length

[ Edited ]

if length(Identifier  )=7 then id=Identifier                        ;

 

or safe bet-->

if length(identifier)=7 and anyalpha(identifier)=0 then id=identifier;
data want;
set have;
if length(identifier)=7 and anyalpha(identifier)=0 then id=identifier;
run;

 

Ask a Question
Discussion stats
  • 1 reply
  • 86 views
  • 0 likes
  • 2 in conversation