Похоже, что индикатор выполнения по умолчанию блестящего не обновляется, когда incProgress()
находится внутри mclapply()
. Ниже приведен пример
library(shiny)
library(parallel)
ui <- fluidPage(
plotOutput("plot")
)
server <- function(input, output) {
output$plot <- renderPlot({
withProgress(message = 'Calculation in progress',
detail = 'This may take a while...', value = 0, {
mclapply(1:15, function(i) {
incProgress(1/15)
Sys.sleep(0.25); flush.console()
return(NULL)
}, mc.cores = 2)
})
plot(cars)
})
}
shinyApp(ui, server)
}
Однако, когда я использую lapply()
, тогда он правильно показывает прогресс.
Любой хак, доступный для использования индикатора прогресса блестящего с mclapply()
?
информация о системе:
> sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.5
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] C/UTF-8/C/C/C/C
attached base packages:
[1] parallel stats graphics grDevices utils datasets methods
[8] base
other attached packages:
[1] shiny_1.2.0
loaded via a namespace (and not attached):
[1] compiler_3.5.2 magrittr_1.5 R6_2.4.0 promises_1.0.1
[5] later_0.8.0 tools_3.5.2 htmltools_0.3.6 Rcpp_1.0.0
[9] jsonlite_1.6 digest_0.6.18 xtable_1.8-3 httpuv_1.4.5.1
[13] mime_0.6 rlang_0.3.1