I have a 8 byte long Character variable example NNNNNNNN Now This word will replace with "D" at any of the 8 character so for example It can be DNNNNNNN or DDNNNNNN now my requirement is only select those observation where minimum within this string there are TWO DD so out of three above only with "DDNNNNNN" contain observation should be selected...
I need to consider possibility that D can be at any location so it can be combination like NNDNNNDN or any combination like that...Can somebody share thoughts how do we select these observations?
data want;
set have;
if count(var,'D','i') gt 1; --- i ignores case
run;
Results a dataset which contains minimum of two D's (either D or d) in a variable Var.
data want;
set have;
if count(var,'D') gt 1;
run;
Results a dataset which contains minimum of two D's (only D) in a variable Var.
You could use a compress() function and remove anything other than 'D'. Then you check if the remaining string (only Ds) has at least a length of 2.
data have;
input row string $ select_expected;
datalines;
1 NNDNNNDN 1
2 DNNNNNNN 0
3 NNNDNNNN 0
4 NNDNDNDN 1
;
run;
data want;
set have;
if lengthn(compress(string,'D','k'))>=2;
run;
Thanks Patrick it worked...
data want;
set have;
if count(var,'D','i') gt 1; --- i ignores case
run;
Results a dataset which contains minimum of two D's (either D or d) in a variable Var.
data want;
set have;
if count(var,'D') gt 1;
run;
Results a dataset which contains minimum of two D's (only D) in a variable Var.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.