我想制作一个小小的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)
我在一条线路上工作的时间太长了,通常我都会工作。这段代码与我在这里找到的代码相似。
帮助/教育非常感谢,欢呼!保尔。
答案 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)