我需要重塑我的数据,以便以适合生存分析的格式获取它。
我当前的数据集如下所示:
Product_Number Date Status
A 2018-01-01 0
A 2018-01-02 1
A 2018-01-03 0
B 2018-01-01 0
B 2018-01-02 0
B 2018-01-03 0
B 2018-01-04 1
C 2018-01-01 0
C 2018-01-02 0
我需要根据 Product_Number、Date 和 Status 列重塑我的数据(我想计算每个产品的天数,直到状态转变为 1。如果状态为 0,则流程应重新开始) .
所以数据应该是这样的:
Product_Number Number_of_Days Status
A 2 1 #Two days til status = 1
A 1 0 #One day, status = 0 (no end date yet)
B 4 1 #Four days til status = 1
C 2 0 #Two days, status is still 0 (no end date yet)
到目前为止我尝试了什么?
我按 ProductNumber 和 Date 订购了我的数据。我喜欢 DPLYR 方式,所以我使用了:
df <- df %>% group_by(Product_Number, Date) # note: my data is now in the form as in the example above.
然后我尝试使用 diff() 函数来查看日期的差异(计算天数)。但是当状态切换(从 0 到 1,反之亦然)时,我无法“停止”计数。
我希望我清楚地解释了这个问题。如果您需要一些额外的信息,请告诉我。