【发布时间】:2016-02-07 14:36:32
【问题描述】:
这可能有点令人困惑,但是,请看下表:
ID | PatientID | VisitCode | EXAMDATE | AGE
--------------------------------------------------------
1 | 7362 | BL | 21/08/2015 | 19
2 | 7362 | M06 | 21/08/2015 | NA
3 | 7362 | M36 | 21/08/2015 | NA
4 | 7363 | BL | 21/08/2015 | NA
5 | 7363 | M36 | 21/08/2015 | 70
6 | 7366 | BL | 21/08/2015 | NA
7 | 7366 | M03 | 21/08/2015 | 65
8 | 7366 | M06 | 21/08/2015 | NA
9 | 7366 | M012 | 21/08/2015 | NA
上面的示例显示了 3 位患者在不同就诊时记录的数据。问题是在一些访问中,一些数据被填写为NA,因为它不可用,因为它已经记录在以前的访问中。
预期输出:
ID | PatientID | VisitCode | EXAMDATE | AGE
--------------------------------------------------------
1 | 7362 | BL | 21/08/2015 | 19
2 | 7362 | M06 | 21/08/2015 | 19
3 | 7362 | M36 | 21/08/2015 | 19
4 | 7363 | BL | 21/08/2015 | 70
5 | 7363 | M36 | 21/08/2015 | 70
6 | 7366 | BL | 21/08/2015 | 65
7 | 7366 | M03 | 21/08/2015 | 65
8 | 7366 | M06 | 21/08/2015 | 65
9 | 7366 | M012 | 21/08/2015 | 65
我想要一个代码,根据不是 NA 的最近访问来替换每个患者的 NA。 访问代码列表:
- BL
- M03
- M06
- M012
- M036
【问题讨论】:
-
如果您添加了预期的输出数据会很有帮助。还要确保您的示例不太简化。如果存在具有相同 ID 的两个值的情况,则应添加所需的行为。根据您可能遇到的情况,使示例多样化。
-
您说的是 3 个患者,但我可以看到 2 个唯一 ID....
-
@PierreLafortune 对我添加了预期输出的混乱感到抱歉
-
@AntoniosK 输入错误,我已更改 ID,谢谢
-
@jeremycg 的解决方案非常适合您的要求。但是正如@PierreLafortune 提到的,您应该考虑您提供的示例是否过于简单。例如。如果患者
7362去年 18 岁时访问过,那么仅对PatientID进行分组将用 18 替换所有内容(NA 和 19)。因此,通过一个简化的示例,您将得到一个很好的答案,但您必须这样做对您的真实数据集进行大量调试。