Hi All,
I have a data set of patient visits. We want to extract only the patients who have at least 2 visits. How do I do this?
Have:
id visit#
a 1
a 2
a 3
a 4
b 1
c 1
c 2
c 3
d 1
The data set I want would only include ids a and c.
Thanks!
Something like this?
data test;
length id visit $1;
input id visit;
datalines;
a 1
a 2
a 3
a 4
b 1
c 1
c 2
c 3
d 1
;
run;
proc sql;
create table sel as
select id
from test
group by id
having count(visit) > 1
;
quit;
data test1;
merge test (in=a) sel (in=b);
by id;
if a and b;
run;
//Fredrik
Something like this?
data test;
length id visit $1;
input id visit;
datalines;
a 1
a 2
a 3
a 4
b 1
c 1
c 2
c 3
d 1
;
run;
proc sql;
create table sel as
select id
from test
group by id
having count(visit) > 1
;
quit;
data test1;
merge test (in=a) sel (in=b);
by id;
if a and b;
run;
//Fredrik
data want; set have; by id; if if first.id and last.id then delete; run;
Removes any records where there is only one recor per id.
I like it, but we may decide we want to include people with more observations down the line. I think I'll try FredrikE's method. Thanks!
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!
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.