I have a 3:1 nested case control matched sample dataset with match_id assigned per group
id | match_id | event |
1 | 1 | 0 |
4 | 1 | 0 |
9 | 1 | 0 |
10 | 1 | 1 |
5 | 2 | 0 |
11 | 2 | 0 |
12 | 2 | 0 |
13 | 3 | 1 |
8 | 3 | 0 |
16 | 3 | 0 |
17 | 3 | 0 |
I want to remove observations who have less than 4 of the same match_id (in this example observations with match_id=2).
proc sql;
create table have1 as
select*, count(*) as total_id
from have
group by match_id;
quit;
proc print;run;
data want;
set have1;
where total_id gt 3;
proc print;run;
proc sql;
create table have1 as
select*, count(*) as total_id
from have
group by match_id;
quit;
proc print;run;
data want;
set have1;
where total_id gt 3;
proc print;run;
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.