[英]Store selectInput in a string/character object
我想將輸入$ var中的變量存儲到一個對象,該對象可以與后者的字符串進行比較。 現在,我只是試圖通過將其存儲到對象value_stored中在屏幕上打印。 但是它不打印任何內容*(錯誤:無法將類型'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)
我強烈建議使用reactiveValues
(對象來存儲你的反應值)和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)
})
})
}
PS:您可以刪除paste
因為它在那里沒有任何作用。
差不多了,您只需要先定義反應性元素,然后在watchEvent()函數中監視輸入即可。 然后,在觀察值內部,使用isolate()更新值。
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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.