Dear,
I need help in my pgm. Please suggest in my code to get output. Thank you
For id=2 and 3, have missing visits. I need to have each subject all possible visits records.
2 in this dataset.
output need;
id visit visitn
1 Post1 Cycle 4 12
1 Post2 Cycle 4 18
2 Post1 Cycle 4 12
2 Post2 Cycle 4 18
3 Post1 Cycle 4 12
3 Post2 Cycle 4 18
4 Post1 Cycle 4 12
4 Post2 Cycle 4 18
data one;
input id visit $3-16 visitn;
datalines;
1 Post1 Cycle 4 12
1 Post2 Cycle 4 18
2 Post1 Cycle 4 12
3 Post2 Cycle 4 18
4 Post1 Cycle 4 12
4 Post2 Cycle 4 18
;
proc sql noprint;
create table tmp1 as
select distinct id,visit
from one;
quit;
data tmp2;
set tmp1;
do visitn= 12, 18; output; end;
run;
data want;
merge one tmp2;
by id visit visitn;
run;
I usually try to resist atavistic impulses to use sql, but here is a situation that I think sql stands up well:
data one;
input id visit $3-16 visitn;
datalines;
1 Post1 Cycle 4 12
1 Post2 Cycle 4 18
2 Post1 Cycle 4 12
3 Post2 Cycle 4 18
4 Post1 Cycle 4 12
4 Post2 Cycle 4 18
;
proc sql;
create table want as
select id, visit, visitn
from
(select distinct id from one)
cross join
(select distinct visit,visitn from one) ;
quit;
You can relatively easily expand this to more than 2 groups of variables. In this case group1 is ID, group 2 is visit*visitn.
Editted change:
modified
(select distinct id from one)
join
(select distinct visit,visitn from one) on 1 ;
to
(select distinct id from one)
cross join
(select distinct visit,visitn from one) ;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.