抱歉,我对 R 很陌生,而且我不是数据专家。我正在尝试计算省略重叠日期的持续时间。我怀疑 lubridate 是答案。我的数据集如下所示:
patientnumber rxnumber startdate stopdate
100 1 1/1/2014 1/5/2014
100 2 1/1/2014 1/5/2014
100 3 1/20/2014 1/22/2014
200 4 2/14/2014 2/14/2014
200 5 2/15/2014 2/20/2014
我想计算获得患者 100 的 8 (5 + 3) 和 7 患者 200 (1 +6) 的值,以计算每个患者的总暴露量。
我认为我需要解决的方法是。计算每个患者的最短开始日期和最长停止日期,然后使用计数器变量从最短开始日期开始计数。如果计数器变量与间隔之一重叠,则添加一个并继续移动。如果没有,请继续前进,直到达到最大停止日期。
我只是不知道如何编码。这将是我在 R 中完成的最复杂的编码,也是我第一次使用循环。请帮忙!
更新@Richard 感谢您的帮助。在扩大规模时,我注意到了一些问题。
假设 1 个相同的患者人数并增加 rx#
startdate stopdate 持续时间重叠
3/26/2014 3/26/2014 1 3(此重叠来自上述记录) 3/27/2014 3/27/2014 1 0
3/27/2014 3/27/2014 1 1 3/27/2014 3/30/2014 4 1 3/28/2014 3/28/2014 1 3(不幸的是,我不确定如何解决)
代码可以正常工作,只需要微调。希望你能帮忙。我会继续尝试解决这个问题。