Parece que no puedo recuperar el valor de salida seleccionado de mi acción selectInput. Las listas de las opciones de vectores y seleccionados se insertan adecuadamente en la interfaz de usuario, pero el valor de la variable input$Site_User_Override
es siempre NULL
.
output$Site_Pick_User = renderUI({
choices=as.list(Subset_List()$to_Select)
selected = Site_Pick_Initial()
selectInput("Site_User_Override", "Override Site_Pick:", choices=choices,
selected=selected, multiple = FALSE, selectize = TRUE, width = NULL, size = NULL)
})
Mi vector de una sola fila Site_Pick_Initial()="Name5_1.9mi_S"
Y la estructura de Subset_List()
es el encabezado y cinco filas debajo.
Name STATE lat lon Air_Miles Bearing Rose Rank to_Select Delta_Dir
Name1 NJ 42.3 -74 8.826 12.092 NNE 33 Name1_8.8mi_NNE 175.89
Name2 NJ 42.2 -74 2.690 14.615 NNE 27 Name2_2.7mi_NNE 173.37
Name3 NJ 42.3 -74 9.049 348.271 NNW 34 Name3_9.0mi_NNW 160.29
Name4 NJ 42.2 -74 3.962 329.387 NNW 28 Name4_4.0mi_NNW 141.40
Name5 NJ 42.2 -74 1.868 187.983 S 21 Name5_1.9mi_S 0.00
¿Cómo puedo recuperar el valor de input$Site_User_Override
? El código anterior está simplificado; Necesito usar input$Site_User_Override
en los últimos cálculos y pantallas.
2 respuestas
Según su pregunta, el siguiente código debería ser equivalente pero funciona totalmente bien. Actualice si lo que está intentando hacer es diferente.
library(shiny)
ui <- fluidPage(
uiOutput("test"),
verbatimTextOutput("debug")
)
data <- data.frame(
Name = c("n1", "n2", "n3"),
to_Select = c("Name1_8.8mi_NNE", "Name4_4.0mi_NNW", "Name5_1.9mi_S"),
stringsAsFactors = FALSE
)
server <- function(input, output, session) {
output$test <- renderUI({
selectInput(
"Site_User_Override",
"Override Site_Pick:",
choices = data$to_Select,
selected = "Name5_1.9mi_S"
)
})
# input$Site_User_Override is updated and can be used elsewhere
output$debug <- renderPrint({
input$Site_User_Override
})
}
shinyApp(ui, server)
Gracias, Harlan. https://stackoverflow.com/users/4629916/harlan-nelson Me diste la pista que necesitaba. La "salsa secreta" estaba usando AMBOS selectInput () en el lado de la interfaz de usuario
selectInput(
inputId = "Site1_Override",
label = "Override Site_Pick:",
choices = "",
selected = ""
)
Y updateSelectInput () en el lado del servidor, con un observeEvent ()
observeEvent(
input$checkGroup, {
updateSelectInput(session,
inputId = "Site1_Override",
label = "Override Site_Pick:",
choices = as.list(Subset_List()$to_Select),
selected = Site_Pick_Initial()
)
})
Vi una pista adicional sobre la solución en un video de YouTube https://www.youtube.com/ watch? v = tXh01HFyH68 donde vi por primera vez TANTO la interfaz de usuario como las ediciones del servidor.
Ahora puedo generar con éxito el elemento seleccionado,
output$result_item <- renderPrint({
input$Site1_Override
})
Y
output$result <- DT::renderDataTable(
Subset_List()[Subset_List()$to_Select %in% input$Site1_Override,]
)
Nuevas preguntas
r
R es un entorno de software y lenguaje de programación de código abierto y gratuito para computación estadística, bioinformática, visualización y computación en general. Proporcione ejemplos mínimos y reproducibles junto con el resultado deseado. Use dput () para los datos y especifique todos los paquetes no base con llamadas a library (). No incruste imágenes para datos o código, use bloques de código con sangría en su lugar. Para preguntas relacionadas con estadísticas, use https://stats.stackexchange.com.