问题描述
我在闪亮的应用程序中使用 foreach 包来并行运行操作。我不知道如何使常规闪亮的进度条正常工作。下面是一个说明我的问题的简单示例:
library(shiny)
library(foreach)
library(doParallel)
library(DT)
app <- shinyApp(
ui = fluidPage(
DT::dataTableOutput("table")
),server = function(input,output) {
output$table <- renderDataTable({
withProgressShiny(message = "Calculation in progress",detail = "This may take a while ...",value = 0,{
output <- data.frame()
cores.detected <- parallel::detectCores()
cl <- parallel::makeCluster(cores.detected - 1)
doParallel::registerDoParallel(cl)
output <- foreach(i = 1:10000,.combine = 'rbind') %dopar% {
output[1,1] = i
output[1,2] = round(sqrt(i),2)
return(output)
incProgress(1/10000,detail = paste0("Calculation progress: ",round(i/10000*100,0),"%"))
Sys.sleep(0.1)
}
parallel::stopCluster(cl)
})
DT::datatable(output)
})
}
)
runApp(app)
在闪亮之外我会使用 doSNow 包,但据我所知它不适用于闪亮 任何提示将不胜感激
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)