Есть ли способ сгруппировать переменные с помощью функции pickerInput из пакета woolWidgets? - PullRequest
0 голосов
/ 08 июня 2019

Мои данные выглядят так:

A B C

x 1 NA
x 2 NA
x 2 NA
y 1 NA
y 2 NA
z 2 NA
z 3 NA
z 3 NA
z 2 NA

Мне нужно сгруппировать каждое значение A в моей функции pickerInput

library(shiny)
library(shinyWidgets)

x <- read.csv("Example.csv", sep=";")

ui <- fluidPage(
    pickerInput("x", "Pick :", choices = x$A, multiple = T)
)
server <- function(input, output) {}
shinyApp(ui, server)

То, что я ожидаю получить в поле выбораis:

x

y

z

Вместо этого я получаю каждое вхождение xyz

Так как я могу сгруппировать каждыйиз этих значений?

Мне удается получить это с помощью традиционной функции selectInput из пакета блестящего пакета, но «Выбрать все / отменить выбор всего» из функции блестящего виджета действительно интересен для моей цели

1 Ответ

0 голосов
/ 08 июня 2019
library(shiny)
library(shinyWidgets)

ui <- fluidPage(
    fileInput("file1", "Choose CSV File",
              accept = c(
                  "text/csv",
                  "text/comma-separated-values,text/plain",
                  ".csv"),
    ),
    uiOutput("selection")
)
server <- function(input, output) {

    output$selection <- renderUI({
        inFile <- input$file1

        if (is.null(inFile))
            return(NULL)

        df <- read.csv(inFile$datapath)

        tagList(
        selectizeInput("dynamicselctor", "Pick: ", choices = unique(df[[1]]), multiple = TRUE),
        pickerInput("dynamicselctor2", "Pick: ", choices = unique(df[[1]]), multiple = TRUE)
        )

    })

}
shinyApp(ui, server)

Рендеринг вашего PickerInput или selectizeInput со стороны сервера также возможен (но обычно он должен работать)

...