selectizeinput lectura de nombre de columna en lugar del valor

anonymous_beginner:

¿alguien puede explicar este comportamiento conmigo? En R, si la lista L [[i]] contiene sólo un elemento, espectáculos selectizeinput sólo el nombre-columna en lugar del elemento. No incluye el nombre de la columna si hay más elementos.

En la consola del comportamiento también es diferente entre estos 2:

> l[[1]][,'value']

            value 
    "some string" 


> l[[2]][,'value2']
[1] "more string"  "other string"

library(shiny)

l <- c()

value <- "some string"
id <- "1"
df <- cbind(id,value)
l[[1]] <- df

value2 <- c("more string", "other string")
id2 <- c("2","3")
df2 <- cbind(id2,value2)
l[[2]] <- df2

ui <- fluidPage(
  selectizeInput("input", "selectize 1", l[[1]][,'value'], multiple=TRUE),
  verbatimTextOutput("out"),
  selectizeInput("input2", "selectize 2", l[[2]][,'value2'], multiple=TRUE),
  verbatimTextOutput("out2")
)

server <- function(input,output){
  output$out <- renderText({
    input$input
  })
  output$out2 <- renderText({
    input$input2
  })
}

shinyApp(ui = ui, server = server)
Wietse de Vries:

No estoy seguro acerca de todos los detalles de por qué sucede esto, pero su primera matriz almacena su valor como CHR nombre, en lugar de un CHR como se ve aquí:

> str(l[[1]][, 'value'])
 Named chr "some string"
 - attr(*, "names")= chr "value"
> str(l[[2]][, 'value2'])
 chr [1:2] "more string" "other string"

Puede resolver este problema mediante la lectura de la primera matriz como un vector que va a tener este aspecto en la interfaz de usuario:

...
selectizeInput("input", "selectize 1", as.vector(l[[1]][,'value']), multiple=TRUE),
...

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399939&siteId=1
Recomendado
Clasificación