r - 基于多行日期的子集数据
问题描述
我有关于在该医院入院后 30 天内重新入院的患者的数据。许多患者会多次重新入院,但我们仅将其编码为在之前入院后 30 天内重新入院。
这是一个例子:
name stay at hospital admitdate readmission
john doe 1 1/1/2018 no
john doe 2 1/21/2018 yes
john doe 3 4/2/2018 no
john doe 4 10/2/2018 no
我正在寻找重新接纳=是的行和重新接纳=否的行以及与重新接纳=是的那一行最接近的录取日期的行。
对于此示例,这意味着我只想对前两行进行子集化。我想对第二行进行子集化,因为 readmission = "yes" 然后我想对第 1 行进行子集化,因为录取日期 2018 年 1 月 1 日最接近 readmission = "yes" 行的录取日期(录取日期 1/21/ 2018)。
df <- df
df1 <- df[df$Readmission == "no", ]
df2 <- aggregate(df1$Date, by = list(df$Name), FUN = "max")
df3 <- rbind(df[df$Readmission == "yes", ], df2)
这不起作用,因为它拉动了“最大”日期,其中再入院 =“否”(保持 4)但我希望它保持 1。
我想输出给我这两行的数据集:
name stay at hospital admitdate readmission
john doe 1 1/1/2018 no
john doe 2 1/21/2018 yes
解决方案
推荐阅读
- python - 如何摆脱熊猫数据框中不符合阈值的值(然后绘制它)
- bash - 在 Bash 和 Zsh 中是否有等效的 `set -- $*`?
- .net-core - MassTransit 过滤消费者可以处理的消息
- kubernetes - 无法使用令牌登录 Kubernetes 仪表板
- css - 如何为材料表中的搜索输入添加标签
- javascript - 从 Applescript 调用 Swift/objective-c 方法
- angular - Angular 9 - 部署到 Web 服务器时路由不起作用
- google-apps-script - 如何删除或以编程方式禁用/阻止复制的 Google Doc 上的附加脚本?
- python - 如何创建递归金字塔函数?
- laravel - Laravel auth::check 在控制器中为真,但在刀片中为空