R/Блестящий: Динамически Заполнять Группу Флажков, Используя Заголовки Из Загруженного Файла

#r #csv #checkbox #shiny

Вопрос:

Я пытаюсь создать страницу с помощью R Shiny, которая имеет:

  • Виджет файлов для загрузки CSV-файлов
  • Компонент группы флажков

Я хотел бы использовать их следующим образом:

  • После загрузки допустимого CSV-файла заполните группу флажков, флажками которой являются все заголовки из CSV-файла, все отмеченные по умолчанию

До сих пор я пробовал различные формы observe() и observeEvent (), но не добился успеха в этом даже близко. Любые предложения, которые у вас могут возникнуть, были бы замечательными.

Ответ №1:

Вы можете попробовать checkboxGroupInput .

 library(shiny)

ui <- fluidPage(
  fileInput('file', 'Upload csv file'),
  uiOutput('dropdown')
)

server <- function(input, output) {
  data <- reactive({
    req(input$file)
    read.csv(input$file$datapath)
  })
  
  output$dropdown <- renderUI({
    req(data())
    checkboxGroupInput('cols', 'Select Column', names(data()), 
                        names(data()), inline = TRUE)
  })
}


shinyApp(ui, server)
 

Вы можете установить inline = FALSE , хотите ли вы расположить их вертикально.

Комментарии:

1. Идеальный. Еще раз спасибо!