【发布时间】:2021-04-27 11:51:10
【问题描述】:
我有一个简单的患者就诊数据集:
date infection
2005-01-01 yes
2005-06-30 yes
2005-10-15 yes
2006-01-01 no
2006-06-01 no
2006-11-01 yes
2006-12-01 no
2007-11-15 yes
在 R 中,我想添加一个名为 chronic 的列,它的值是 yes、no、NA。
- 仅当当前日期的 infection=='yes' 并且在过去 365 天内有两行 infection=='yes' 时,它才会显示值
yes。 - 否则,如果在过去 365 天内没有两次访问,则需要
NA - 否则需要
no
所以最终的数据集应该是这样的:
date infection chronic
2005-01-01 yes NA
2005-06-30 yes NA
2005-10-15 yes yes
2006-01-01 no no
2006-06-01 no no
2006-11-01 yes no
2006-12-01 no no
2007-11-15 yes NA
我将如何编码?理想情况下,我想使用dplyr,但我愿意接受任何解决方案。谢谢!
可以使用以下代码重新创建数据集:
dat <- data.frame(date = c(as.Date("2005-01-01"), as.Date("2005-06-30"), as.Date("2005-10-15"), as.Date("2006-01-01"), as.Date("2006-06-01"), as.Date("2006-11-01"), as.Date("2006-12-01"), as.Date("2007-11-15")), infection = c("yes", "yes", "yes", "no", "no", "yes", "no", "yes"))
【问题讨论】: