【发布时间】:2023-04-03 08:48:01
【问题描述】:
我有关于感染就诊的数据。个人可以进行 1 次以上的访问。如果一个人在一年内进行了一次以上的就诊,临床医生会认为他已被感染。然后,第一次访问的日期被认为是感染开始。
例如ids1、2、3有如下访问:
Data have;
INPUT row ID date;
CARDS;
1 1 2017-03-22
2 1 2017-04-26
3 1 2018-02-20
4 1 2018-04-07
5 1 2018-04-16
6 2 2014-01-15
7 2 2014-06-23
8 2 2014-07-23
9 2 2015-01-14
10 3 2018-01-22
11 3 2019-05-03
;
run;
根据感染的临床定义,我想要这些日期:
| row | ID | date |
|---|---|---|
| 1 | 1 | 2017-03-22 |
| 4 | 1 | 2018-04-07 |
| 6 | 2 | 2014-01-15 |
选择 ID=1 的第一个日期是因为一年内有 2 次以上的访问。跳过第一次访问后和第一次访问后一年内的所有访问(第 2 行和第 3 行)。第二个日期是第 4 行,与第一次访问相隔一年多,之后一年内还有一次访问。
对于 ID=2,我们只选择第一个日期并跳过一年内的所有下一次访问。
对于 ID=3,我们不选择任何日期,因为一年内访问次数不超过一次。
【问题讨论】:
-
这在 proc SQL 中非常复杂,可能不可行。使用数据步骤。
-
谢谢,有没有想过如何使用数据步骤?