Shiny 闪亮:renderText使用条件滑块失败

Shiny 闪亮:renderText使用条件滑块失败,shiny,Shiny,我正在努力学习闪亮,我在一个问题上撞到了我的头 如果是在条件面板中,我无法将由滑块put确定的值呈现为文本。只是不明白如何解决这个问题 最小示例 library(shiny) ui <- fluidPage( titlePanel("Plot my distribution"), sidebarLayout( sidebarPanel( helpText("Plot a distribution."), selectInput("distr", l

我正在努力学习闪亮,我在一个问题上撞到了我的头

如果是在条件面板中,我无法将由
滑块put
确定的值呈现为文本。只是不明白如何解决这个问题

最小示例

library(shiny)
ui <- fluidPage(
titlePanel("Plot my distribution"),

sidebarLayout(
sidebarPanel(
  helpText("Plot a distribution."),

  selectInput("distr", 
              label = "Choose a distribution",
              choices = c("Binomial", 
                          "Negative Binomial",
                          "Poisson"),
              selected = "Binomial"),
  conditionalPanel(
    condition = "input.distr != 'Poisson'",
    sliderInput("prob", 
                label = "Probability of success:",
                min = 0, max = 1, value = 0.5
    )
  )
),  
mainPanel(
  textOutput("selected_dist"),
  textOutput("prob")
)
)
)
server <- function(input, output) {

  output$selected_dist <- renderText({ 
    paste("You have selected", input$distr)
  })

  output$prob <- reactive({
    renderText({ 
      paste("You have chosen probability =", input$prob)
    })
  })
  outputOptions(output, "prob", suspendWhenHidden = FALSE)  
}
shinyApp(ui, server)
库(闪亮)

ui这里有两个反应式ui,一个用于滑块,另一个用于文本。但只有一个响应滑块的
条件。您希望两者都依赖于
输入$distr
。一种方法是仅在
input$distr!=泊松

另外,我认为有一个建议是,
render
语句不应该在
被动的
语句中,或者相反。因为
render
语句已经是被动的

因此,要仅在呈现滑块小部件时将通过滑块选择的值显示为文本,可以执行以下操作:

server <- function(input, output) {

output$selected_dist <- renderText({ 
    paste("You have selected", input$distr)
})


output$prob <- renderText({
    if (!input$distr== "Poisson") {
        paste("You have chosen probability =", input$prob)
    }
})
}

服务器如果您的
选择input
“distr”
不应该
condition=“input.distr…”
,而不是
condition=“input.distrib…”
?是的,对。但这是问题中的打字错误(对不起).fixed.从
输出$prob
中删除反应性标记为我解决了这个问题。@novica是的,它解决了。我真的对反应性环境感到困惑!谢谢