Как обновить индикатор выполнения, когда функция работает в Shiny App - PullRequest
1 голос
/ 31 января 2020

Я новичок в Блестящем, и я создаю очень простое демонстрационное приложение c для статистической модели, которую я недавно построил.

Приложение имеет selectInput для некоторых данных, для которых запускается модель, «Run Model» кнопка и наблюдательEvent в зависимости от нее. При нажатии на него появляется диалоговое окно с сообщением «Пожалуйста, подождите ...». Однако, поскольку функция работает, синяя полоса, заполняющая поле для отображения прогресса, отсутствует.

Функция, выполняющая модель, находится внутри withProgress () , я попытался поместить updateProgress ( ) но я не могу понять, как заставить прогрессировать перемещать индикатор выполнения во время работы модели, так как функция не находится внутри для l oop.

Если вы не возражаете, чтобы проверить полное репо вот ссылка https://github.com/jgpeniche/Bayesian_T_TIIE.git

Куски кода в моем приложении, на которые я ссылаюсь, следующие:

Сервер

server <- function(input, output) {

    observeEvent(input$run, {
        # wrap the loop execution in withProgress
        withProgress(

            message='Please wait',
            detail='Running Model...',
            value=0, {

                # Some code lines

                # Some function that takes really long time to run

                rnorm(1000000000, 0,1)
                updateProgress()
        })
})

})



1 Ответ

1 голос
/ 31 января 2020

Вы хотите использовать incProgress() для постепенного обновления индикатора выполнения.

server <- function(input, output) {

observeEvent(input$run, {
    # wrap the loop execution in withProgress
    withProgress(

        message='Please wait',
        detail='Running Model...',
        value=0, {
            n <- 4
            # Some code lines

            # Some function that takes really long time to run

            rnorm(1000000000, 0,1)
            incProgress(1/n, detail = paste("Finished section 1"))

            #more lines of code

            incProgress(1/n, detail = paste("Finished section 2"))
    })
})

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