R 的调查包中的多核参数

multicore argument in R's survey package

尝试在 R 的 survey 包中使用 multicore = TRUE 参数时,出现以下错误:

Error in glm.control(multicore = TRUE) :
  unused argument (multicore = TRUE)

复制示例代码:

library(tidyverse)
library(survey)

mtcars %<>%
  mutate(weights = 1) %>%
  mutate(id = ceiling(row_number()/2)) %>%
  mutate(strata = ceiling(row_number()/4))

design <- svydesign(id =~ id, weights =~ weights, strata =~ strata,
                data = mtcars)

model <- svyglm(design = design, mpg ~ drat + wt + qsec,
            multicore=TRUE)

mutlicore 确实在 svyglm 的文档中作为可能的参数出现。 This thread 表示这个参数在 Windows 上可能不起作用,但我在 Unix 系统上 运行 这个。

我知道 multicore 包已被弃用,取而代之的是 parallel,并且文档 here 表明 survey 包已更新以反映此更改(参见修订版 3.29-5),但我不确定是否或如何涉及此问题。

我还尝试使用以下代码安装和加载过时的 multicore,但这确实解决了问题。

url <- "https://cran.r-project.org/src/contrib/Archive/multicore/multicore_0.2.tar.gz"
pkgFile <- "multicore_0.2.tar.gz"
download.file(url, destfile = pkgFile)
install.packages(pkgs = pkgFile, type="source", repos=NULL)
library(multicore)

multicore= 选项仅针对复制权重设计和 svyby() 实施,因为它们是唯一允许多核支持的粗粒度并行性的分析。