【发布时间】:2021-02-22 20:15:40
【问题描述】:
我想创建一个闪亮的应用程序,可以在其中上传 csv 文件,然后选择该文件的列。问题是上传文件后,我的代码无法更新列名以获取可能的选择。这是一个可重现的例子。谢谢!
ui <- fluidPage(
fileInput("file1",
"Please choose a csv File",
multiple = FALSE,
accept = c("text/csv",
"text/comma-separated-values,text/plain",
".csv")),
div(style="display:inline-block", selectInput('var',
'Select the first var',
"") )
)
server <- function( input, output, session ) {
data <- reactive({
inFile <- input$file1
req(inFile)
validate(need(ext == "csv", "Please upload a csv file"))
df = read.csv(inFile$datapath,
header = input$header,
sep = input$sep,
quote = input$quote)
colnames <- names(df)
df
})
output$contents <- renderTable( {
updateSelectInput(session,
inputId = 'var',
label = 'Select the first var',
choices = colnames)
} ) }
shinyApp(ui = ui, server = server)
【问题讨论】:
-
您的代码没有运行,因为输出不存在。请改用
observeEvent -
并使用
choices = names(data())让它反应