Dataset looks like this -
Name ID flag1
AJ 1 1
AJ 1 .
AJ 1 .
AJ 2 .
AJ 2 .
How do I make dataset looks like this -
Name ID flag1 varWant
AJ 1 1 1
AJ 1 . 1
AJ 1 . 1
AJ 2 . .
AJ 2 . .
Thanks!
Try this — assumes data is sorted by name and id.
data want;
set have;
retain varWant;
by name id;
if first.id and flag1=1 then varWant=1;
if first.id and flag1^=1 then varWant=.;
run;
data want; set have; retain varwant; by name id; if first.name and first.id then varwan1; run;
Try this — assumes data is sorted by name and id.
data want;
set have;
retain varWant;
by name id;
if first.id and flag1=1 then varWant=1;
if first.id and flag1^=1 then varWant=.;
run;
data have;
input Name $ ID flag1;
cards;
AJ 1 1
AJ 1 .
AJ 1 .
AJ 2 .
AJ 2 .
;
data want;
set have;
by id;
retain varWant;
if first.id then do;
call missing(varwant);
if flag1 then varWant=flag1;
end;
run;
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.