Существует ли простой способ создания раздела пользовательского интерфейса из загруженного набора данных? - PullRequest
0 голосов
/ 11 февраля 2019

Я устанавливаю блестящее приложение, которое запрашивает набор данных, запрашивает информацию об указанном наборе данных, а затем запускает ряд аналитических моделей на указанном наборе данных, принимая во внимание информацию о наборе данных (например, именапеременных для корректировки в регрессии).Приложение начинается с простого пользовательского интерфейса с вводом данных.После того, как пользователь загрузил свои данные, я бы хотел, чтобы пользовательский интерфейс динамически добавил новый раздел, который просит пользователя выбрать подмножество переменных из меток столбцов своего набора данных.

Я работаю с RStudio Server через компьютер с Linux AWS.

Мое приложение создается как дополнение к другому пакету R, который служит оберткой для большинства статистических функций, которые мне требуются.Поскольку приложение довольно большое, пользовательский интерфейс состоит из некоторого стандартного текста и ряда функций, которые вызывают tabItems для пользовательского интерфейса.

В приведенном ниже примере пользовательский интерфейс имеет стандартный ввод данных пользователем.В дополнение к этому я попытался использовать блестящий :: renderUI на стороне сервера, чтобы взять предоставленный пользователем набор данных, прочитать столбцы и возвратить набор столбцов с помощью spark :: varSelectInput ().К сожалению, мое приложение не предоставляет этот новый ввод после загрузки данных.

ui_data_1 <- function(){

y<-tabItem(tabName = "load_dat",
  shiny::tabsetPanel(type = "tabs",
      # Data upload ---- -
      h2("Data"),
      p("Please upload your data file"),
      shiny::fileInput(
        inputId = "data_file", label = "Upload patient data file (.csv Only)",
        accept = c(".csv")
      ),
      h2("Treatment"),
    p("Instructions for treatment"),
    shiny::uiOutput("variables"))
)
)
return(y)
}   


server_data_1 <- function(){

 y <- shiny::renderUI({
 inFile <- input$data_file

 # Load data
 if (is.null(inFile)) {
   df <- shiny::reactive({NULL})
 } else {
   df <-  shiny::reactive({read.csv(inFile$datapath, header = input$header)})
 }

 varnames <- colnames(df())

 shiny::varSelectInput(
   inputId = "treat",
   label = "Treatment Variable",
   data = c(varnames)
 )
})
return(y)
}

#UI.R
body <- shinydashboard::dashboardBody(
     ui_data_1()
)
ui <- shinydashboard::dashboardPage(header, sidebar, body, skin = "black")

#Server.R
server <- function(input, output) {
  output$variables  <- server_data_1()
}



shiny::shinyApp(ui, server)

Приложение загружается правильно, как и меню загрузки данных.Когда я загружаю данные, я получаю уведомление о том, что загрузка прошла успешно.Метка, связанная с inputId = "Treat", видна все время.Однако меню выбора переменных не заполняется после загрузки данных, как ожидалось.Возможно, я сделал что-то не так.Спасибо заранее за любые советы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...