ФОН
Я создаю блестящую панель инструментов в Data Science Studio , где пользователь должен выбрать файл, который он хочет обработать, из selectizeInput
и затем нажмите Отправить actionButton
.Как только кнопка нажата, она запускает бэкэнд-процесс, чтобы определить, к какой категории относится файл и какому рабочему процессу следует следовать (разные рабочие процессы содержат разные этапы очистки и конечные результаты).Как только рабочий процесс завершится, я хочу отобразить окончательный результат в DT::renderDataTable
.
ЖЕЛАЕМЫЙ ВЫХОД
Я бы хотел, чтобы мое блестящее приложение показывало
- , пока данные не будут выбраны до выбора входа
- время, скажем, 30 секунд с момента, когда кто-то нажимает кнопку «Отправить», чтобы на самом деле взять набор данныхв этом простом приложении?
UI
library(shiny)
library(shinydashboard)
library(DT)
library(dataiku)
path <- dkuManagedFolderPath("receiver") #folder with the files to choose from
dashboardPage(
dashboardHeader(title = "Catchy Title"),
dashboardSidebar(
selectizeInput("file", "Select File",
list.files(path)),
actionButton("submit", "Submit")
),
dashboardBody(
fluidRow(
box(h2("Show Data"),
div(style = 'overflow-x: scroll', DT::dataTableOutput('mytable')),
width = 12)
)
)
)
SERVER
library(dataiku)
library(shiny)
library(shinydashboard)
library(DT)
library(dplyr)
shinyServer(function(input, output) {
file_name <- reactive({
req(input$file)
})
####
# run the process that takes the file name to pass it to
# the global environment, which triggers the conditional workflow
# and may result in different data outputs
####
## AFTER the process runs (approx. 30 seconds after pressing the submit button)
# I want the shiny app to follow this logic:
if(is.null(nrow(try(dkuReadDataset("intermediate_dataset"))[1]))){
df <- dkuReadDataset("final_data1")
} else{
df <- dkuReadDataset("final_data2")
}
output$mytable = DT::renderDataTable({
df
})
})
Спасибо за подсказки!