这是我拥有的R数据帧df1
的快照。
NEW_UPC IRI_KEY WEEK UNITS DOLLARS F D PR
11820005991 1073521 1230 1 14.29 NONE 0 0
11820005991 1073521 1232 1 14.29 NONE 0 0
11820005991 1073521 1235 1 14.29 NONE 0 0
11820005991 1073521 1239 1 14.29 NONE 0 0
11820005991 1073521 1241 3 42.97 NONE 0 0
11820005991 1073521 1243 1 14.29 NONE 0 0
11820005991 1073521 1244 5 71.45 NONE 0 0
----------- ------- ---- - ----- ---- - -
11820005991 1073525 1218 2 27.98 NONE 0 0
11820005991 1073525 1224 1 13.99 NONE 0 0
11820005991 1073525 1229 1 12.99 NONE 0 1
11820005991 1073525 1236 1 12.99 NONE 0 0
----------- ------- ---- - ----- ---- - -
我正在尝试在“对象位置周期”格式数据上拟合Cox比例风险模型。之所以称这种主题位置周期格式是因为NEW_UPC
表示产品ID,IRI_KEY
表示商店位置,WEEK
表示一周。变量UNITS
,DOLLARS
,F
,D
和PR
是随时间变化的,因此我想将Cox模型与随时间变化的协变量一起使用。我查找的引用this和this似乎没有类似于我的数据场景。大多数资源都谈论使用survsplit
或tmerge
将一行主题观察转换为多行主题观察。我的数据已经是subject-location-period格式的,因此不必执行这些操作。但是我的数据没有start
公式中使用的stop
,event
和coxph
变量。就像coxph(Surv(start,stop,event)) ~ DOLLARS + F + D + PR
。我想我需要插入三个新列来创建start
,stop
和event
变量。我对我的数据感兴趣的事件是产品死亡。
第一步,对于每个NEW_UPC
,我能够使用以下方法确定存在的时期数:
df1 %>% group_by(NEW_UPC,IRI_KEY) %>% summarise(Periods = n_distinct(WEEK))
我使用上述方法,因为请注意,有些时段缺少数据。例如,对于产品NEW_UPC值11820005991,我没有1231、1233、1234、1236、1237、1238等周的变量信息。因此,我无法使用max(WEEK) - min(WEEK)
来找到每种产品的周期数。
从现在开始,我只是在努力进行。有什么想法吗?
已添加:预期输出
NEW_UPC IRI_KEY UNITS start stop event DOLLARS F D PR
11820005991 1073521 1 1230 1232 0 14.29 NONE 0 0
11820005991 1073521 1 1232 1235 0 14.29 NONE 0 0
11820005991 1073521 1 1235 1239 0 14.29 NONE 0 0
----------- ------- - ---- ---- - ----- ---- - -
11820005991 1073521 2 1287 1291 1 27.98 NONE 0 0
11820005991 1073525 2 1218 1224 0 27.98 NONE 0 0
11820005991 1073525 1 1224 1229 0 13.99 NONE 0 0
11820005991 1073525 1 1229 1236 0 12.99 NONE 0 1
----------- ------- - ---- ---- - ----- ---- - -
11820005991 1073525 1 1297 1303 1 13.99 NONE 0 0
----------- ------- - ---- ---- - ----- ---- - -
...等等
另外,要确定审查制度,如果产品可以保留到1426周,则将对其进行审查。