BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
KPCklebspn
Obsidian | Level 7

Hi there,


I have a dataset that looks like this

 

ID    varA   

1       0

1       0

2       1

2       1

3       0

3       1

 

I want it to look like this (i.e. flag=1 if all values of varA are the same within ID by group):

 

ID    varA   flag

1       0        1

1       0        1

2       1        1

2       1        1

3       0        0

3       1        0


How would I do this? Thanks

 

1 ACCEPTED SOLUTION

Accepted Solutions
PeterClemmensen
Tourmaline | Level 20

Try this

 

data have;
input ID varA;
datalines;
1 0
1 0
2 1
2 1
3 0
3 1
;

proc sql;
   create table want as
   select *, count(distinct varA)=1 as flag 
   from have
   group by ID;
quit;

View solution in original post

4 REPLIES 4
PeterClemmensen
Tourmaline | Level 20

Try this

 

data have;
input ID varA;
datalines;
1 0
1 0
2 1
2 1
3 0
3 1
;

proc sql;
   create table want as
   select *, count(distinct varA)=1 as flag 
   from have
   group by ID;
quit;
KPCklebspn
Obsidian | Level 7

Thank you, worked! can you pls explain what this bit of syntax means:

count(distinct varA)=1 
PaigeMiller
Diamond | Level 26
proc summary data=have nway;
    class id;
    var vara;
    output out=stats std=std;
run;

data want;
    merge have stats;
    by id;
    if std=0 then flag=1;
    drop std;
run;
--
Paige Miller
novinosrin
Tourmaline | Level 20
data have;
input ID varA;
datalines;
1 0
1 0
2 1
2 1
3 0
3 1
;
proc sql;
   create table want as
   select *, std(vara)=0 as flag 
   from have
   group by ID;
quit;

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 995 views
  • 0 likes
  • 4 in conversation