使用Shining In和Rmarkdown文档更新SelectInput

使用Shining In和Rmarkdown文档更新SelectInput,r,shiny,r-markdown,R,Shiny,R Markdown,我正在尝试在Rmarkdown文档中使用闪亮内联。在这个简单的示例中,我想创建3个输入:第一个输入允许您从4个国家中选择一个或多个(“GHA”、“RWA”、“TZA”、“UGA”)。在real应用程序中,我希望根据选定国家的实际可用景观更新景观选项。但是,在本例中,我只希望初始视图(当默认选择“GHA”时)为“L01”到“L06”。然后,如果对“国家”输入进行任何更改,则景观选项将更改为(“嗯”,“嗯”)。我曾读到,在某些情况下,观察与反应选项可能是首选,并尝试了各种变化,但本质上,每当我包含u

我正在尝试在Rmarkdown文档中使用闪亮内联。在这个简单的示例中,我想创建3个输入:第一个输入允许您从4个国家中选择一个或多个(“GHA”、“RWA”、“TZA”、“UGA”)。在real应用程序中,我希望根据选定国家的实际可用景观更新景观选项。但是,在本例中,我只希望初始视图(当默认选择“GHA”时)为“L01”到“L06”。然后,如果对“国家”输入进行任何更改,则景观选项将更改为(“嗯”,“嗯”)。我曾读到,在某些情况下,观察与反应选项可能是首选,并尝试了各种变化,但本质上,每当我包含updateSelectInput命令时,我都会丢失应用程序中的任何风景选项。谢谢你的见解

library(shiny)   
  selectInput("countries", 'Country',
                list("GHA","RWA","TZA","UGA"),
                multiple=TRUE, 
                selectize=TRUE, 
                selected="GHA")
  checkboxGroupInput("landscapes", label=("Landscape"), 
                choices=c("L01","L02","L03","L04","L05","L06"), selected="L01")   
  radioButtons("checkPlot", label = ("Factors"), 
                         choices=c("Gender of Household Head", "Water Source(s)"),
                         selected = "Water Source(s)")
  observeEvent(input$countries, {
    updateSelectInput(session, "landscapes", choices=c("hmm","hum"))   })

下面是解决您的问题的示例代码:

library(shiny)
library(DT)
shinyApp(
  ui = fluidPage(
    selectInput("countries", 'Country',
                list("GHA","RWA","TZA","UGA"),
                multiple=TRUE, 
                selectize=TRUE, 
                selected="GHA"),
    uiOutput("checkbox")
  ),
  server = function(input, output) {

    output$checkbox <- renderUI({
      choice <-  if(any(input$countries == "GHA")){
        choice <- c("L01","L02","L03","L04","L05","L06")
      }else{ 
        choice <- c("hmm","hum")}
      checkboxGroupInput("landscapes", label=("Landscape"), choices = choice, selected = choice[1])

    })

   }
)
库(闪亮)
图书馆(DT)
shinyApp(
ui=fluidPage(
选择输入(“国家”,“国家”,
清单(“GHA”、“RWA”、“TZA”、“UGA”),
倍数=真,
selectize=TRUE,
选定的“=“GHA”),
uiOutput(“复选框”)
),
服务器=功能(输入、输出){

output$checkbox谢谢,Mal_a!在Rmarkdown中,语法有点不同,并且您没有使用服务器/用户界面的区别(据我所知),这就是为什么它们都在我的脚本中。不过,您的解决方案对我来说非常有效,只需通过删除这些行来修改Rmarkdown。要添加这样的内容:renderUI({sliderInput(“用户_q”,“我的值”,最小值=0,最大值=10,步长=1,值=5)})