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
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;
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.
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;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.