Shiny: Показать кнопки только после того, как файл был загружен

Я экспериментирую с Shiny, и мне это нравится. Я построил небольшое приложение, в котором студенты загружают CSV-файл, затем выбирают зависимые переменные и независимые переменные, а затем R вычисляет линейную регрессию. Работает нормально. Я загрузил его по адресу:

http://carlosq.shinyapps.io/Regresion

[Ты можешь использоватьэтот файл чтобы проверить это, если хотите. "beer" является зависимой переменной, а остальные переменные, кроме "id", являются независимыми.]

Вот сервер.R:

# server.R
library(shiny)

shinyServer(function(input, output) {

  filedata <- reactive({
    infile <- input$file1
    if (is.null(infile)){
      return(NULL)      
    }
    read.csv(infile$datapath)
  })

  output$dependent <- renderUI({
    df <- filedata()
    if (is.null(df)) return(NULL)
    items=names(df)
    names(items)=items
    selectInput("dependent","Select ONE variable as dependent variable from:",items)
  })


  output$independents <- renderUI({
    df <- filedata()
    if (is.null(df)) return(NULL)
    items=names(df)
    names(items)=items
    selectInput("independents","Select ONE or MANY independent variables from:",items,multiple=TRUE)
  })


  output$contents <- renderPrint({
    input$action
    isolate({   
      df <- filedata()
      if (is.null(df)) return(NULL)
      fmla <- as.formula(paste(input$dependent," ~ ",paste(input$independents,collapse="+")))
      summary(lm(fmla,data=df))
    })   
  })

}) 

А вот и UI.R:

# ui.R
library(shiny)

shinyUI(fluidPage(
  titlePanel("Multiple Linear Regression"),
  sidebarLayout(
    sidebarPanel(
      fileInput('file1', 'Choose CSV File',
                accept=c('text/csv', 
                         'text/comma-separated-values,text/plain', 
                         '.csv')),

      tags$hr(),
      uiOutput("dependent"),
      uiOutput("independents"),
      tags$hr(),
      actionButton("action", "Press after reading file and selecting variables")

    ),
    mainPanel(
      verbatimTextOutput('contents')
    )
  )
))

У меня такой вопрос: я хочу, чтобы появление кнопки «После прочтения файла и выбора переменных» зависело от успешной загрузки.

Я попытался использовать предложение, содержащееся здесь:

Сделать так, чтобы conditionalPanel зависел от файлов, загруженных с помощью fileInput

Но я просто не могу заставить это работать.

Я ценю любую помощь.

Ответы на вопрос(2)

Ваш ответ на вопрос