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!
Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.
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.