Help using Base SAS procedures

Test for certain numeric values

Reply
Occasional Contributor
Posts: 9

Test for certain numeric values

I have two Char fields with a length of 10, named "Acct" and "Derived". 

I need to test the "Acct" field, and if the value has a length of 6, and is a numeric value between 100,000 & 999,999, then copy the value to the "Derived" field.

How to code the Update statement?

Sample data looks like this:

Acct

==========

1

100

1000A

201000     ==> Copy

210000A

312456   ==> Copy

A400010

I'm a newbie just learning, so please be specific in your response.i

Contributor
Posts: 30

Re: Test for certain numeric values

Hi ,

You can try the below approch ;

data want  ;

set have  ;

if notdigit(acct) = 0 and lenght(acct)  = 6 and  100000 =<acct >=999999 then  derived = acct ;

run;

Super User
Super User
Posts: 7,430

Re: Test for certain numeric values

Just to note, you don't actually need to check the length there:

if notdigit(acct) = 0 and 100000 =<acct >=999999 then  derived = acct ;

As anything not between the given upper and lower includes those with a length ne 6.

Super User
Posts: 9,691

Re: Test for certain numeric values

data have;

input acct $;

cards;

1

100

1000A

201000  

210000A

312456 

A400010

;

run;

data want ;

set have;

length derived $ 10;

if 100000<=input(acct,?? best32.)<=999999 then derived=acct;

run;

Ask a Question
Discussion stats
  • 3 replies
  • 161 views
  • 0 likes
  • 4 in conversation