I have a dataset from a longitudinal study to compute incidence rate and the confidence interval.I need to compute the number of new cases(the number of the variable 'case'=1) divided by the sum of the total person-years.Need your kindly help on the coding.Thanks!
The example dataset is like
case pyr
1 3
0 5
0 5
1 3.4
0 5
0 5
0 5
1 2.1
0 5
Assuming you want to sum the pyr only for the new cases :
data have;
input ase pyr;
datalines;
1 3
0 5
0 5
1 3.4
0 5
0 5
0 5
1 2.1
0 5
;
data want(keep=newCases sumPyr ratio);
do until(done);
set have end=done;
if ase then do;
newCases + 1;
sumPyr + pyr;
end;
end;
ratio = newCases / sumPyr;
run;
proc print data=want noobs; run;
PG
Assuming you want to sum the pyr only for the new cases :
data have;
input ase pyr;
datalines;
1 3
0 5
0 5
1 3.4
0 5
0 5
0 5
1 2.1
0 5
;
data want(keep=newCases sumPyr ratio);
do until(done);
set have end=done;
if ase then do;
newCases + 1;
sumPyr + pyr;
end;
end;
ratio = newCases / sumPyr;
run;
proc print data=want noobs; run;
PG
Thanks!
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.