Hello all,
I am working with a very large (~65,000 observations) repeated measures data set. Currently, the data is setup in long format. How do I create an indicator variable based on change in variable at different timepoints?
This is what I have:
ID Count Smk_status
1 1 Never
1 2 Never
2 1 Former
2 2 Former
2 3 Former
3 1 Never
3 2 Current
3 3 Former
This is what I want:
ID Count Smk_status Smk_trajectory
1 1 Never Never
1 2 Never Never
2 1 Former Former
2 2 Former Former
2 3 Former Former
3 1 Never Inconsistent
3 2 Current Inconsistent
3 3 Former Inconsistent
I can do this in wide format of data but I am just wondering if anyone has any suggestions to do this in long format of data.
Thanks in advance!
SQL is pretty good at this one.
proc sql;
create table want as
select *, case when max(smk_status)=min(smk_status) then min(smk_status)
else 'Inconsistent' end as smk_trajectory
from have
group by ID,
order by ID, count;
quit;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.