R/Shiny:使用上传文件中的 Headers 填充 SelectInput 选项
R/Shiny: Populate SelectInput Options using Headers From Uploaded File
我正在尝试使用 R Shiny 构建一个页面,该页面具有:
用于上传 CSV 文件的文件小部件
一个 SelectInput 组件
我想按如下方式使用它们:
- 上传有效的 CSV 文件后,填充 SelectInput,其选项是 CSV 文件中的 headers,第一个 header 是默认选择的
到目前为止,我已经尝试了各种形式的 observe()
和 observeEvent()
,但都没有成功。如果您有任何建议,那就太好了。
这里有一个选项-
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)
我正在尝试使用 R Shiny 构建一个页面,该页面具有:
用于上传 CSV 文件的文件小部件
一个 SelectInput 组件
我想按如下方式使用它们:
- 上传有效的 CSV 文件后,填充 SelectInput,其选项是 CSV 文件中的 headers,第一个 header 是默认选择的
到目前为止,我已经尝试了各种形式的 observe()
和 observeEvent()
,但都没有成功。如果您有任何建议,那就太好了。
这里有一个选项-
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)