Dear,
In my data, I need assign a base value to OBS of that subject.
From my data I need to take the value when visit=1 and populate to all subjects.
code:
proc sql;
create table data2 as
select *,value as base
from data1
where visit=1
group by id;
quit;
data1
id visit value
1 1 10
1 2 20
2 1 20
2 1 20
output need:
data2
data
id visit value base
1 1 10 10
1 2 20 10
2 1 20 20
2 1 30 20
It is simple and easy to be done by data step:
Data data2;
set data1;
by id;
retain base;
if first.id then base=.;
if visit=1 then base=value;
run;
Post your test data in the form of a datastep in future, I am not here to type in test data for you. If you need to do this with SQL, then something along the lines of:
select A.*,
B.VAL as BASE
from HAVE A
left join (select * from HAVE where VISIT=1) B
on ...
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.