首页 > 解决方案 > 如何处理这个 makePSOCKcluster 错误?

问题描述

我正在运行一个名为 mixedpower() 的函数,它可以让您模拟不同样本大小的功率。但是我收到以下错误,不知道如何处理!

Error in makePSOCKcluster(names = spec, ...) : 
  Cluster setup failed. 11 of 11 workers failed to connect.

这是一个可重现的例子。(为了避免任何评论,我知道齿轮在这里不应该是一个随机变量,但我只是将它用于本示例的目的。)

#You can download the mixedpower package like this.
  if (!require("devtools")) {
    install.packages("devtools", dependencies = TRUE)}

   devtools::install_github("DejanDraschkow/mixedpower") 

library(mixedpower)
library(lme4)

m <- lmer(mpg ~ cyl + disp + hp + drat + (1|gear), data = mtcars)

mtcars$gear_num <- as.numeric(mtcars$gear)

power <- mixedpower(model = m, data = mtcars, fixed_effects = c("cyl", "disp", "hp", "drat"), simvar = "gear_num", steps = c(3, 4, 5), critical_value = 2)

如果有帮助,我将在 MacOS Mojave 版本 10.14.6 上运行 RStudio 版本 1.1.453。

标签: rlme4mixed-models

解决方案


我无法测试,但强烈怀疑您的问题与最新版本的 R 中的错​​误有关(现在已在更新的版本中修补)。此问题描述了将以下内容添加到您的.Rprofile文件的解决方法(更新到最新的 R 修补版本也可能会做到这一点)。

## WORKAROUND: https://github.com/rstudio/rstudio/issues/6692
## Revert to 'sequential' setup of PSOCK cluster in RStudio Console on macOS and R 4.0.0
if (Sys.getenv("RSTUDIO") == "1" && !nzchar(Sys.getenv("RSTUDIO_TERM")) && 
    Sys.info()["sysname"] == "Darwin" && getRversion() >= "4.0.0") {
  parallel:::setDefaultClusterOptions(setup_strategy = "sequential")
}

推荐阅读