R 跟踪患者可能没有药物的时间
我在这个问题上有点纠结,我可以利用社区的一些见解。比如说,由于特殊情况,患者不定期地接受药物治疗:R 跟踪患者可能没有药物的时间,r,dplyr,lubridate,R,Dplyr,Lubridate,我在这个问题上有点纠结,我可以利用社区的一些见解。比如说,由于特殊情况,患者不定期地接受药物治疗: Patient_Receiving_Schedule <- tibble(Medicine_Received = c(ymd("2019-01-01"), ymd("2019-01-20"), ymd("2019-02-01"), ymd("2019-06-01"), ymd("2019-06-15&q
Patient_Receiving_Schedule <- tibble(Medicine_Received = c(ymd("2019-01-01"), ymd("2019-01-20"), ymd("2019-02-01"), ymd("2019-06-01"), ymd("2019-06-15")),
Days_of_Medicine_Received = c(30,30,30,30,30))
Patient\u Receiving\u Schedule您是否可以使用一种逻辑,即如果在上次装运后的x
天数内未收到药品,则我们需要重置可用药品的天数
计算
如果是,则在本例中,您可以使用下面的x=30
,但实际上您可以将其设置为任何值
library(dplyr)
Patient_Receiving_Schedule %>%
group_by(grp = cumsum(Medicine_Received - lag(Medicine_Received, default = first(Medicine_Received)) > 30)) %>%
mutate(Days_of_Medicine_Available = cumsum(Days_of_Medicine_Received) - as.integer(Medicine_Received - first(Medicine_Received))) %>%
ungroup() %>%
select(-grp)
# Medicine_Received Days_of_Medicine_Received Days_of_Medicine_Available
# <date> <dbl> <dbl>
#1 2019-01-01 30 30
#2 2019-01-20 30 41
#3 2019-02-01 30 59
#4 2019-06-01 30 30
#5 2019-06-15 30 46
库(dplyr)
患者接收计划%>%
分组依据(grp=cumsum(收到的药物-滞后(收到的药物,默认值=第一个(收到的药物))>30))%>%
mutate(Days\u of\u Medicine\u Available=cumsum(Days\u of\u Medicine\u Received)-as.integer(Medicine\u Received-first(Medicine\u Received))%>%
解组()%>%
选择(-grp)
#药品收到天数可用药品收到天数可用药品
#
#1 2019-01-01 30 30
#2 2019-01-20 30 41
#3 2019-02-01 30 59
#4 2019-06-01 30 30
#5 2019-06-15 30 46
您是否可以使用一种逻辑,即如果在上次装运后的x
天数内未收到药品,则我们需要重置可用药品的天数
计算
如果是,则在本例中,您可以使用下面的x=30
,但实际上您可以将其设置为任何值
library(dplyr)
Patient_Receiving_Schedule %>%
group_by(grp = cumsum(Medicine_Received - lag(Medicine_Received, default = first(Medicine_Received)) > 30)) %>%
mutate(Days_of_Medicine_Available = cumsum(Days_of_Medicine_Received) - as.integer(Medicine_Received - first(Medicine_Received))) %>%
ungroup() %>%
select(-grp)
# Medicine_Received Days_of_Medicine_Received Days_of_Medicine_Available
# <date> <dbl> <dbl>
#1 2019-01-01 30 30
#2 2019-01-20 30 41
#3 2019-02-01 30 59
#4 2019-06-01 30 30
#5 2019-06-15 30 46
库(dplyr)
患者接收计划%>%
分组依据(grp=cumsum(收到的药物-滞后(收到的药物,默认值=第一个(收到的药物))>30))%>%
mutate(Days\u of\u Medicine\u Available=cumsum(Days\u of\u Medicine\u Received)-as.integer(Medicine\u Received-first(Medicine\u Received))%>%
解组()%>%
选择(-grp)
#药品收到天数可用药品收到天数可用药品
#
#1 2019-01-01 30 30
#2 2019-01-20 30 41
#3 2019-02-01 30 59
#4 2019-06-01 30 30
#5 2019-06-15 30 46
这是一个非常好的想法,谢谢分享。但是,让我们暂时假设答案是否定的——我们没有权利宣布x天后我们可以重置计算,并且必须查看整个历史。有没有一种方法可以查看整个病史来判断患者是否在某些时候“过期”了?这是一个非常好的想法,谢谢分享。但是,让我们暂时假设答案是否定的——我们没有权利宣布x天后我们可以重置计算,并且必须查看整个历史。有没有一种方法可以查看整个病史来判断患者是否在某些时候“逾期”了?