R/Shiny:使用上传文件中的标头填充 SelectInput 选项

JRo*_*meo 2 r shiny selectinput

我正在尝试使用 R Shiny 构建一个页面,其中包含:

  • 用于上传 CSV 文件的文件小部件

  • 选择输入组件

我想按如下方式使用它们:

  • 上传有效的 CSV 文件后,填充 SelectInput,其选项是 CSV 文件中的标题,第一个标题是默认选择的

到目前为止,我已经尝试过各种形式的observe()observeEvent(),但没有成功地实现这一目标。您的任何建议都会很棒。

Ron*_*hah 6

这是一个选项 -

library(shiny)

#Sample data
#write.csv(mtcars, 'data.csv', row.names = FALSE)

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())
    selectInput('cols', 'Select Column', names(data()))
  })
}


shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述