在下面的玩具示例中,我拟合了模型。然后,我尝试使用它进行预测。我的问题是,尽管使用变量input$group
可以很好地拟合模型,但是使用相同模型的预测函数无法识别此输入。
错误消息:警告:获取错误:找不到“输入”对象
library(shiny)
library(frailtypack)
data("readmission", package = "frailtypack")
ui <- fluidPage(
titlePanel("prediction"),
sidebarPanel(
wellPanel(
selectInput("time",
label = h5("Time :"),
choices = names(readmission)),
selectInput("cens_ind",
label = h5("Censoring indicator :"),
choices = names(readmission)),
selectInput("group",
label = h5("Cluster :"),
choices = names(readmission)),
selectizeInput("co_var",
label = h5("Co-variables :"),
choices = names(readmission),
multiple = TRUE)),
actionButton("goButton", "Go!")
),
mainPanel(
verbatimTextOutput("print"),
plotOutput("pred")
)
)
server <- function(input, output, session) {
datapred <- eventReactive(input$goButton,{
DF = subset(readmission[0,],select = c(input$time,input$cens_ind,input$group,input$co_var))
DF
})
model <- eventReactive(input$goButton,{
frailtyPenal(as.formula(paste("Surv(get(input$time),get(input$cens_ind))~cluster(get(input$group)) +", paste(input$co_var, collapse = " + "))),
data=readmission,n.knots=10,kappa=10000)
})
predict <- reactive({
datapred <- datapred()
prediction(model(),datapred,t=100,window=seq(50,1900,50))
})
output$print <- renderPrint({
print(model())
})
output$pred <- renderPlot({
predict <- predict()
if (!is.null(predict)) plot(predict)
})
}
shinyApp(ui = ui, server = server)
要测试代码,请选择以下设置:时间->时间,审查器指示器->事件,群集-> id和协变量->公爵。
答案 0 :(得分:0)
尝试导入库(rlang),并在您的子集函数中使用以下替换内容:
!!rlang::sym(input$group)