我最近开始阅读关于SuperLearner的内容,并尝试在R中运行用于生存结果的SuperLearner。我在Mark J. van der Laan和Sherri Rose的Targeted Learning书中找到了一个示例代码,该代码需要将数据转换为长格式才能运行。
用于将数据转换为长格式的函数已不再可用。以下是代码:
library(survival)data(lung)subLung <- subset(lung, select = c(time, status, age,ph.ecog, ph.karno, pat.karno))subLung$female <- (lung$sex - 1)subLung <- subLung[complete.cases(subLung), ]## Expand subLung to Long FormatlongData <- SuperLearner:::createDiscrete(time =subLung$time, event = (subLung$status == 2),dataX = subset(subLung, select =-c(time, status)), n.delta = 30)
createDiscrete
函数在SuperLearner包中已不再可用。是否有其他函数可以将数据转换为长格式?如果没有,那么一个关于如何将数据转换为适当的长格式的示例将非常有帮助。或者,一个用于运行SuperLearner以处理生存结果的示例R代码也将非常有帮助。
回答:
我找到了答案。为了运行用于生存结果的SuperLearner,数据结构必须转换为计数过程格式,这意味着,time变量应按某种方式分割,使得在给定的时间间隔内最多只能发生1个事件。survival包中的survsplit
函数可以实现这一点!感谢Eric C. Polley博士的帮助。