小编use*_*987的帖子

R vs. Matlab:rnorm,qnorm和pnorm函数的速度差异解释

我比较了内置R函数的性能rnorm,qnorm以及pnorm等效的Matlab函数.

似乎rnormpnorm函数在R中比在Matlab中慢3-6倍,而qnorm函数是ca. 40%的R.更快我试图RCPP包通过使用这导致减少在运行期间由〜30%,其仍然比显著Matlab的较慢相应的C库来加快R的功能rnormpnorm.

是否有可用的包提供了一种更快的方法来模拟R中的正态分布随机变量(除了使用标准rnorm函数)?

performance matlab runtime r rcpp

9
推荐指数
2
解决办法
5123
查看次数

在并行foreach计算中使用标准R闪亮进度条

我试图使用doParallel后端在并行foreach循环中使用标准的R闪亮进度条.但是,这会导致以下错误消息:

警告:{:任务1失败 - "'会话'不是ShinySession对象时出错."

代码(最低工作示例)

library(shiny)
library(doParallel)

ui <- fluidPage(
  actionButton(inputId = "go", label = "Launch calculation")
)

server <- function(input, output, session) {

  workers=makeCluster(2)
  registerDoParallel(workers)

  observeEvent(input$go, {
    Runs=c(1:4)
    Test_out=foreach(i=Runs, .combine=cbind, .inorder=TRUE, .packages=c("shiny"),.export=c("session")) %dopar% { 
      pbShiny = shiny::Progress$new()
      pbShiny <- Progress$new(session,min = 0, max = 10)
      on.exit(pbShiny$close())
      test_vec=rep(0,100)

      for(i in 1:10){
        test_vec=test_vec+rnorm(100)
        pbShiny$set(message="Simulating",detail=paste(i),
                  value=i)
        Sys.sleep(0.2)
      }

    }
  })
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

如果我按顺序运行foreach循环(使用registerDoSEQ()),代码就会运行.有谁知道如何解决这个问题?


总体的目标

  • 使用doParallel后端处于闪亮状态,在并行foreach循环中向用户显示进度
  • 用户应该了解工人的数量以及每个工人的进度和/或总体进度

在以下链接下有一个类似的问题,但由于没有提供工作示例,因此没有得到解决:

在R Shiny中利用并行foreach进度条

foreach r progress-bar shiny doparallel

3
推荐指数
1
解决办法
571
查看次数

标签 统计

r ×2

doparallel ×1

foreach ×1

matlab ×1

performance ×1

progress-bar ×1

rcpp ×1

runtime ×1

shiny ×1