簡體   English   中英

R閃亮-錯誤:必須為數字

[英]R shiny - error : must be a numeric

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$nbintegerint )類,但frailtyPenal希望使用numericdouble )。 您可以使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM