library(shiny)
library(frailtypack)
data("readmission", package = "frailtypack")
ui <- fluidPage(
sidebarPanel(
sliderInput("nb",
h5("Number of time intervals :"),
min = 1,
max = 20,
value = 10)),
mainPanel(
verbatimTextOutput("mod"))
)
server <- function(input, output) {
output$mod <- renderPrint({
model <-frailtyPenal(Surv(time,event)~cluster(id)+ sex + dukes, data=readmission,
hazard = "Piecewise-per", nb.int = input$nb)
print(model)
})
}
shinyApp(ui, server)
嗨,上面的代码将我作为 nb.int 必须是数字的错误发回给我。而 input$nb 是一个数字。我不明白为什么。
错误消息是不言自明的。input$nb
属于integer
( int
)类,但frailtyPenal
需要一个numeric
( double
)。你可以用as.numeric
.
大多数 R 函数在内部进行类型之间的转换,因此您可能不会经常看到这种情况,但函数有时对其输入参数有非常严格的要求。
library(shiny)
library(frailtypack)
data("readmission", package = "frailtypack")
ui <- fluidPage(
sidebarPanel(
sliderInput("nb",
h5("Number of time intervals :"),
min = 1,
max = 20,
value = 10)),
mainPanel(
verbatimTextOutput("mod"))
)
server <- function(input, output) {
output$mod <- renderPrint({
message("start render")
message(input$nb)
message(class(input$nb))
model <-frailtyPenal(Surv(time,event)~cluster(id)+ sex + dukes, data=readmission,
hazard = "Piecewise-per", nb.int = as.numeric(input$nb))
print(model)
})
}
shinyApp(ui, server)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句