R 将selectInput存储在字符串/字符对象中

R 将selectInput存储在字符串/字符对象中,r,shiny,shiny-reactivity,R,Shiny,Shiny Reactivity,我想将变量存储在input$var中,存储到一个对象中,该对象可以与后面部分的字符串进行比较。现在,我只是试图通过将它存储到存储的对象值来在屏幕上打印它。但它没有打印任何内容*(错误:无法将“closure”类型强制为“character”类型的向量*)。这意味着它没有存储值 library(shiny) ui <- fluidPage( titlePanel("censusVis"), sidebarLayout( sidebarPanel( helpTex

我想将变量存储在input$var中,存储到一个对象中,该对象可以与后面部分的字符串进行比较。现在,我只是试图通过将它存储到存储的对象值来在屏幕上打印它。但它没有打印任何内容*(错误:无法将“closure”类型强制为“character”类型的向量*)。这意味着它没有存储值

library(shiny)
ui <- fluidPage(
  titlePanel("censusVis"),

  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with 
               information from the 2010 US Census."),

      selectInput("var", 
                  label = "Choose a variable to display",
                  choices = c("Percent White", 
                              "Percent Black",
                              "Percent Hispanic", 
                              "Percent Asian"),
                  selected = "Percent White")
      ),

    mainPanel(
      textOutput("selected_var")
      textOutput("test")
    )
  )
  )

server <- function(input, output) {

  output$selected_var <- renderText({ 
    paste(input$var)
  })

  value_store <- reactive(input$var)

  output$test <- renderText({
   paste(value_store) 
  })

  # I want to use the value in input$var for some comparision. 
  # but value_store unable to store. Help.

}


shinyApp(ui = ui, server = server)
ui <- fluidPage(
  titlePanel("censusVis"),

  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with 
           information from the 2010 US Census."),

  selectInput("var", 
              label = "Choose a variable to display",
              choices = c("Percent White", 
                          "Percent Black",
                          "Percent Hispanic", 
                          "Percent Asian"),
              selected = "Percent White")
  ),

 mainPanel(
   textOutput("selected_var")
   textOutput("test")
 )
 )
)

server <- function(input, output) {

  value_store <- reactive(val = '')

  observeEvent(input$var, {

    # add to reactive
    isolate(value_store$val = input$var)

    # or render update
    output$selected_var <- renderText({ 
       paste(value_store$val)
     })

  })




 output$test <- renderText({
   paste(value_store$val) 
 })

  # I want to use the value in input$var for some comparision. 
  # but value_store unable to store. Help.

}


shinyApp(ui = ui, server = server)
库(闪亮)

ui我强烈建议使用(对象来存储反应值)和
observeEvent

使用服务器代码:

server <- function(input, output) {
    # Create object for reactive values 
    rv <- reactiveValues(
        value_store = character()
    )
    # When input changes -> update
    observeEvent(input$var, {
        output$selected_var <- renderText({ 
            paste(input$var)
        })
        rv$value_store <- input$var
        output$test <- renderText({
            paste(rv$value_store) 
        })
    })
}

server就快到了,您只需要首先定义被动元素,然后在observeEvent()函数中观察输入。然后在observe中使用isolate()更新值

library(shiny)
ui <- fluidPage(
  titlePanel("censusVis"),

  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with 
               information from the 2010 US Census."),

      selectInput("var", 
                  label = "Choose a variable to display",
                  choices = c("Percent White", 
                              "Percent Black",
                              "Percent Hispanic", 
                              "Percent Asian"),
                  selected = "Percent White")
      ),

    mainPanel(
      textOutput("selected_var")
      textOutput("test")
    )
  )
  )

server <- function(input, output) {

  output$selected_var <- renderText({ 
    paste(input$var)
  })

  value_store <- reactive(input$var)

  output$test <- renderText({
   paste(value_store) 
  })

  # I want to use the value in input$var for some comparision. 
  # but value_store unable to store. Help.

}


shinyApp(ui = ui, server = server)
ui <- fluidPage(
  titlePanel("censusVis"),

  sidebarLayout(
    sidebarPanel(
      helpText("Create demographic maps with 
           information from the 2010 US Census."),

  selectInput("var", 
              label = "Choose a variable to display",
              choices = c("Percent White", 
                          "Percent Black",
                          "Percent Hispanic", 
                          "Percent Asian"),
              selected = "Percent White")
  ),

 mainPanel(
   textOutput("selected_var")
   textOutput("test")
 )
 )
)

server <- function(input, output) {

  value_store <- reactive(val = '')

  observeEvent(input$var, {

    # add to reactive
    isolate(value_store$val = input$var)

    # or render update
    output$selected_var <- renderText({ 
       paste(value_store$val)
     })

  })




 output$test <- renderText({
   paste(value_store$val) 
 })

  # I want to use the value in input$var for some comparision. 
  # but value_store unable to store. Help.

}


shinyApp(ui = ui, server = server)

ui这个成功了。谢谢:)请问如果我有多个selectInput,如何调用同一块中的所有存储对象。因为out ObserveeEvent无法获取存储的_对象。@SangramkeshariSahu尝试使用
observement({code})
而不是
observeEvent(输入$var,{code})
Awesome:),这很有帮助。