时隔N久,再次捡起小笔记~~~
纵向数据,或者随访数据在整理过程中,有时候需要知道每位患者/受试者在研究过程中被随访或者被检查的次数,
可以通过下方小程序:
先建立一个小数据:
DATA ONE;
INPUT SUBJECT SCORE;
DATALINES;
1 11
2 21
3 31
1 12
4 41
1 13
2 22
4 42
4 43
;
RUN;
计算之前需要按照关键变量:患者唯一识别号进行排序:
PROC SORT DATA=ONE;
BY SUBJECT;
RUN;
DATA TWO;
SET ONE;
BY SUBJECT;
FIRST = FIRST.SUBJECT;
LAST = LAST.SUBJECT;
RUN;
PROC PRINT DATA=TWO;
TITLE "Demonstrating FIRST. and LAST. Variables";
RUN;
核心部分:输出随访次数
PROC SORT DATA=ONE;
BY SUBJECT;
RUN;
DATA COUNT;
SET ONE;
BY SUBJECT;
IF FIRST.SUBJECT = 1 THEN NUMBER = 0;
NUMBER + 1;
IF LAST.SUBJECT = 1 THEN OUTPUT;
KEEP SUBJECT NUMBER;
RUN;
PROC PRINT DATA=COUNT;
TITLE "Counting Observations per Subject";
RUN;