我试图在一个闪亮的应用程序中绘制生存情节。在其他探索性图表中,UI有两个selectInput()
块,用户可以在其中选择“事件”类型。像肾功能衰竭,浆细胞瘤等,第二个输入用于计算时间间隔。部分UI代码是:
selectInput(inputId="event",
label = "Event",
choices = c("RenalFailure","Plasmacytoma","RemissionStatusPreTx","RemissionStatusPostTx",
"TotalNoTherapy","ISS")
),
selectInput(inputId="analysis",
label="Period for analysis",
choices=c("From date of transplant"="TD",
"From date of relapse"="TD_R")
),
在服务器中,我使用的代码是:
output$events <- renderPlot({
if(input$analysis=='TD'){
fit_RF <- survfit(Surv(TD,cenin_dead)~input$event,data=rlp_data)
ggsurvplot(fit_RF,risk.table = T,risk.table.height = 0.4,pval = T)
} else{
fit_RF <- survfit(Surv(TD_R,relapse)~input$event,data=rlp_data)
ggsurvplot(fit_RF,risk.table = T,risk.table.height = 0.4,pval = T)
}
})
这给了我一个错误Error in model.frame.default: variable lengths differ (found for 'input$event')
。我用Google搜索了这个错误但老实说,无法做出太多贡献。我尝试提供论证na.action=na.omit
,但没有快乐。如果我将input$event
硬编码到它返回的实际值(例如,RenalFailure
),则绘图呈现。在这里相当无能为力,并希望得到一些指导。