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!
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.