selectInput 不输出数值

Posted

技术标签:

【中文标题】selectInput 不输出数值【英文标题】:selectInput is not outputting numeric values 【发布时间】:2021-03-07 18:36:48 【问题描述】:

我正在构建一个闪亮的应用程序,它将不同的值一起添加到条形图中。我已经让用户输入 numericInput 函数工作,但 selectInput 函数有问题。有没有一种简单的方法可以从这些 selectInput() 函数中获取数值?一定有!

# values for the selectInput.
Buyback <- 10
Dump <- 30
Reuse <- 20

rec_choice <- data.frame(Buyback, Dump, Reuse)

# Define UI for application 
ui <- fluidPage(

    titlePanel("Shiny app with buggy inputSelect"),
  
    # Sidebar with input.
    pageWithSidebar(
 sidebarPanel(
        helpText("Product 1 information:"),

# Numeric inputs, works! 
        numericInput(
            inputId = "price_1",
            label = "Purchase Price",
            value = "0",
            min = 0,
            width = '50%'
        ),
        numericInput(
            inputId = "install_1",
            label = "Installation cost",
            value = "0",
            min = 0,
            width = '50%'
        ),
# here is the select input function  
        selectInput("disposal_1", "Recycling cost",
                       rec_choice),

#I though this approach may work, but no luck. 
 
# selectInput("disposal_2", "Recycling cost",
        #             choices = c("Buyback" = 10,
        #                         "Dump" = 20,
        #                         "Reuse" = 5)),


# server side.
server <- function(input, output) 

  select_price <- reactive(
# error says I've got a "non-numeric argument to binary operator."
    c(input$price_1 + input$install_1 + input$disposal_1)
)

您可以看到我需要在反应函数中将值相加。 selectInput() 可能没有正确写出,或者也许有一种巧妙的方法可以使“input$disposal_1”参数产生一个数值?

# The chart output: 
    my_bar <- output$costPlot <- renderPlot(
        barplot(select_price(), 
                beside = T,
                border=F, 
                las=2 , 
                col=c(rgb(0.3,0.9,0.4,0.6) ,  
                      rgb(0.3,0.9,0.4,0.6)) , 
                space = 3,
                main="" )
      par(mar=c(6,4,4,4))
      abline(v=c(4.9 , 6.1) , col="grey")
      
      my_bar      
         )    


# Run the application 
shinyApp(ui = ui, server = server)

【问题讨论】:

as.numeric(input$disposal_1) 【参考方案1】:

答案非常简单:将 input$disposal 参数包装在 as.numeric() 中

select_price as.numeric(input$disposal_1))

哇,哈哈。我认为答案会复杂得多!

【讨论】:

以上是关于selectInput 不输出数值的主要内容,如果未能解决你的问题,请参考以下文章

R / Shiny selectInput小部件大小

闪亮的 selectInput 'Select All' 层次结构

R/Shiny 的 SelectInput "Selected" 不起作用

Rshiny:如何将 renderUI 输出传递给 Selectinput 中的 chocies 参数

如何使用在renderUI的selectInput中选择的选项在主面板中生成不同的输出?

在 selectInput() 中强制没有默认选择