I have age-specific rates that are in 5-year age intervals that I want to interpolate to rates for single-years of age. In the past I've done this in excel. Is proc expand the correct procedure? I only see info on changing things from monthly to daily, etc and not from 5-year to 1-year rates.
Thanks in advance for any guidance.
Yeah. I think proc expand can do that.
Make a year variable.
year
1
2
..
and put it in ID statement of proc expand.
Thank you, Xia, for your help.
In case anyone is wondering what I ended up doing, here is what I did. The results are very close to the data that I was getting when I did the interpolation in excel.
/*I created an empty dataset with all the ages by 1 so that I would have the correct ages to fill in with the interpolated data:*/
data padded;
do age=15 to 44 by 1;
output;
end;
run;
/*Then I merged that dummy data set onto my data set that had my 5-year fertility rates:*/
data pad;
merge padded work.fert_rates_2012;
by age;
run;
/*Then this is the expand options that I used. The convert has the two fertility rate variables--one for hispanic one for non-hispanic and used the age variable as the ID.*/
proc expand data=pad out=expanded method = spline(natural)
extrapolate;
id age;
convert hisp_irate nonhisp_irate;
run;
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.