我计划研究空气污染对急诊室就诊的影响,并打算使用双边病例交叉设计。对于每个病例(医院就诊),我想创建 4 个控制日期(就诊前后 7 天和 14 天)。例如,如果一个人于 2012 年 9 月 10 日访问诊所,我的控制日期将为 8 月 27 日、9 月 3 日、9 月 17 日和 9 月 24 日。以下示例说明了我所拥有的以及我想要实现的目标。
任何关于如何在 SAS、Stata 或 R 中进行此操作的想法将受到高度赞赏
样本数据(均为访问日期)
id date
-------------
1 04-jan-05
2 05-jan-05
3 05-jan-05
4 06-jan-05
5 06-feb-05
我想实现什么(对于每个id
有 1 个案例和 4 个对照)
id date outcome
---------------------------
1 21-Dec-04 control
1 28-Dec-04 control
1 04-Jan-05 case
1 11-Jan-05 control
1 18-Jan-05 control
2 22-Dec-04 control
2 29-Dec-04 control
2 05-Jan-05 case
2 12-Jan-05 control
2 19-Jan-05 control
3 22-Dec-04 control
3 29-Dec-04 control
3 05-Jan-05 case
3 12-Jan-05 control
3 19-Jan-05 control
4 23-Dec-04 control
4 30-Dec-04 control
4 06-Jan-05 case
4 13-Jan-05 control
4 20-Jan-05 control
5 23-Jan-05 control
5 30-Jan-05 control
5 06-Feb-05 case
5 13-Feb-05 control
5 20-Feb-05 control
一个简单的循环将产生您想要的输出。
data have;
input id date :date10.;
format date date9.;
datalines;
1 04-jan-05
2 05-jan-05
3 05-jan-05
4 06-jan-05
5 06-feb-05
;
run;
data want (drop=i date rename=(date1=date));
set have;
format date1 date9.;
length outcome $8;
do i=-14 to 14 by 7;
date1=date+i;
outcome=ifc(i=0,'case','control');
output;
end;
run;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)