- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 doParallel
包来估计多个非参数模型。我的问题似乎与 np
包有关。看看这个可重现的例子:
library(np)
library(doParallel)
df <- data.frame(Y = runif(100, 0, 10), X = rnorm(100))
models <- list(as.formula(Y ~ X))
npestimate <- function(m, data) {
LCLS <- npregbw(m, data = data, regtype = "lc", bwmethod = "cv.ls")
LLLS <- npregbw(m, data = data, regtype = "ll", bwmethod = "cv.ls")
# sigt <- npsigtest(LCLS, boot.method = "wild", boot.type = "I")
return(list(LCLS = LCLS, LLLS = LLLS))
}
cl <- makeCluster(length(models))
registerDoParallel(cl)
results <- foreach(m = models, .packages = "np", .verbose = T) %dopar%
npestimate(m, data = df)
stopCluster(cl)
如您所见,我创建了一个名为 npestimate()
的函数,以便为每个模型计算不同的内容。我在要使用 npsigtest
运行显着性测试的地方注释掉了一行。通常,npsigtest
通过查看调用 npregbw
的环境来获取使用的数据。
但这在这里不起作用。我不确定为什么,但是 npsigtest
就是找不到上面两行代码中使用的数据。数据会自动导出到节点,因此在 foreach
中使用 .export
是多余的。
关于如何使这项工作有任何建议吗?
最佳答案
npsigtest
几乎复制了 lm
中使用的方法和 lm
对象的函数。因此,它具有相同的潜在范围界定陷阱。问题是与公式相关的环境:
environment(models[[1]])
#<environment: R_GlobalEnv>
修复起来很容易:
npestimate <- function(m, data) {
environment(m) <- environment()
LCLS <- npregbw(m, data = data, regtype = "lc", bwmethod = "cv.ls")
LLLS <- npregbw(m, data = data, regtype = "ll", bwmethod = "cv.ls")
sigt <- npsigtest(LCLS, boot.method = "wild", boot.type = "I")
return(list(LCLS = LCLS, LLLS = LLLS))
}
因为这些问题,我实际上更喜欢 eval(bquote())
结构。
关于r - 使用 doParallel 时的范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50985028/
registerDoParallel 中的集群和核心有什么区别?使用 doParallel 包时? 我的理解是否正确,在单台机器上这些是可以互换的,我会得到相同的结果: cl library(doP
以下问题是与此处描述的问题相关的非常详细的问题。 Previous Question 使用在 R 版本 3.2.3 的 c4.8xlarge(36 核)上启动的 Ubuntu Server 14.04
我正在尝试编写一个具有多线程功能的 CRAN 包。我使用 doSNOW 实现了完美的解决方案,但该软件包已被 CRAN 团队标记为“取代”,他们要求我切换到 doParallel 解决方案。这很好,但
我在 R 中创建了一个顺序模拟来迭代一个过程 10,0000 次。这需要大约 70 分钟,所以我决定与 doParallel 包并行尝试相同的事情。 我的 foreach 循环调用了一个名为“inv.
我在局域网上有两台服务器,全新安装了 Centos 6.4 minimum 和 R 3.0.1。两台计算机都安装了 doParallel、snow 和 snowfall 包。 服务器可以通过 ssh
我正在尝试使用 doParallel 包来估计多个非参数模型。我的问题似乎与 np 包有关。看看这个可重现的例子: library(np) library(doParallel) df 修复
我一直在使用apply将data.frame的每一行提交到R中的function使用Windows 10。这种方法有效。然而,随着函数变得更加复杂并且数据集更大,这种方法变得不可行。因此,我希望使用并
考虑使用并行 foreach 生成随机值的非常基本(且效率低下)的代码: cl <- makeCluster(2) registerDoParallel(cl) foreach(i = 1:100)
我一直在使用apply将data.frame的每一行提交到R中的function使用Windows 10。这种方法有效。然而,随着函数变得更加复杂并且数据集更大,这种方法变得不可行。因此,我希望使用并
我正在尝试设置一个并行任务,其中每个工作人员都需要进行数据库查询。我正在尝试为每个工作人员设置一个连接,如 this question 中所示但每次我尝试它都会返回 无论我注册了多少 worker 。
我正在一个 12 节点集群上运行一个并行进程。 并且想知道是否有办法在 foreach 期间获取节点 ID 或节点编号或节点名称称呼? 像这样的东西: foreach(i = 1:12, .combi
我有这段代码用于并行写入我的结果。我在 R 中使用 foreach 和 doParallel 库。 output_location='/home/Desktop/pp/' librar
我编写了一个运行良好的脚本,但它似乎并未进行并行处理。我尝试将内核从 3 个更改为 16 个,但生成数据的速度没有改变。谁能告诉我我做错了什么以及如何让它发挥作用? setwd("E:/Infecti
当我将 caret 与新配方包一起使用时,即 caret::train.recipe(),如果 doParallel 也用于注册并行后端,我会收到一条错误消息。附件是一个可重现的示例(插入符号文档中官
我正在尝试合并一个大 data.frame用一个小的,并并行计算。下面的代码完美运行,最大化了我机器的所有内核: len <- 2000000 set.seed(666) dat = paste(sa
我正在使用发布的示例代码 here使用 doParallel + foreach 显示 progress_bar(来自 progress 包)。然而,那里的解决方案使用 doSNOW(例如我用于测试的
我正在为 R 构建一个包,我希望它能够跨平台。我在Linux下开发,函数mclapply将从 parallel 开始使用包裹。 Windows(使用 doParallel )不支持此软件包。我真的很喜
如果我运行 foreach... %dopar%在不注册集群的情况下,foreach 会引发警告,并按顺序执行代码: library("doParallel") foreach(i=1:3) %dop
我有一个包含循环的函数 myfun = function(z1.d, r, rs){ x = z1.d[,r] or.d = order(as.vector(x), decreasing=TR
我必须运行大量随机森林模型,因此我想在我的 8 核服务器上使用 doParallel 来加快进程。 然而,某些模型需要比其他模型更长的时间,甚至可能会抛出错误。我想并行运行 8 个模型,如果一个模型抛
我是一名优秀的程序员,十分优秀!