闪亮的radioButton在不同的计算之间切换,使用数据表

时间:2017-01-23 23:49:35

标签: r rstudio shiny

我想制作一个小小的Shiny应用程序,但是我在第一步就陷入困境,因为我觉得我对一个没有经验的编码人员来说太过分了。

我希望应用程序的以下行是:使用data.table包,执行两个计算之一,平均工资或求和,但仅适用于使用selectizeInput选择的状态。  我得到的错误是:  “eventReactiveHandler(...)中的警告:强制引入的NAs” 我搜索了很多东西来达到这一点,但我找不到任何可以帮助我的东西了。

    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)

我在一条线路上工作的时间太长了,通常我都会工作。这段代码与我在这里找到的代码相似。

帮助/教育非常感谢,欢呼!保尔。

1 个答案:

答案 0 :(得分:1)

您的问题是您尝试将文本转换为数字,从而产生创建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)
相关问题