Shiny radioButton 在不同的计算之间切换,与数据表一起使用

Shiny radioButton switching between different calculations, using with datatable

我想制作一个小的 Shiny 应用程序,但我在第一步就卡住了,因为我觉得我对一个没有经验的编码员来说吃得太大了。

我希望应用程序的以下几行执行的操作是:使用 data.table 包,执行两个计算之一,平均工资或对它们求和,但仅限于使用 selectizeInput 选择的状态。 我得到的错误是: "Warning in eventReactiveHandler(...) : NAs introduced by coercion" 为了达到这一点,我在谷歌上搜索了很多,但我找不到任何可以进一步帮助我的东西。

    library(shiny)
    library(data.table)
    ui <- fluidPage(
      selectizeInput(inputId = "Stat", "Choose a state", choices = unique(data4$STATE)),
      radioButtons("calRB", "Choose calculation", c("sum", "avg")),
      verbatimTextOutput("rslt"),
      actionButton("count", "Go")
    )
    server <- function(input, output) {
      Rslt <- eventReactive({input$count, switch(as.numeric(input$calRB),
 return(data.table(data4)[STATE == input$Stat, sum(A00200)]),
 return(data.table(data4)[STATE == input$Stat, mean(A00200)]})))
      output$rslt <- renderPrint(Rslt())
    }
    shinyApp(ui = ui, server = server)

我在一条线上工作的时间太长了,通常我会解决问题。此代码与我在此处找到的代码非常相似。

帮助/教育不胜感激,干杯!帕维尔

您的问题是您试图将文本转换为数字,这会导致创建 NA。

检查 swicth

的语法

此代码可以工作:

ui <- fluidPage(
  selectizeInput(inputId = "Stat", "Choose a state", choices = unique(data4$STATE)),
  radioButtons("calRB", "Choose calculation", c("sum", "avg")),
  verbatimTextOutput("rslt"),
  actionButton("count", "Go")
)
server <- function(input, output) {
  Rslt <- eventReactive(input$count,{ 
    switch(input$calRB,
           sum=return(data.table(data4)[STATE == input$Stat, sum(A00200)]),
           avg=return(data.table(data4)[STATE == input$Stat, mean(A00200)]))})
  output$rslt <- renderPrint(Rslt())
}
shinyApp(ui = ui, server = server)