2017-09-15 51 views
7

我是R和RStudio的新手,并且一直在进行预测建模实验。以下列车功能不需要并行处理,但是当我执行doSNOW makeCluster时,出现如下所示的与名为“optimismBoot”的变量有关的错误。我徒劳无功地寻找解决方案,尝试安装和卸载软件包,但没有任何效果。任何洞察赞赏。插入符号列车功能 - 无法找到变量“optimismBoot”

cl <- makeCluster(2, type = "SOCK") 

registerDoSNOW(cl) 

caret.cv <- train(ReturnedToMF ~ ., 
         data = trees.cetstrain, 
         method = "xgbTree", 
         tuneGrid = tune.grid, 
         trControl = cetstrain.control) 
Error in e$fun(obj, substitute(ex), parent.frame(), e$data) : 
    unable to find variable "optimismBoot" 

我发现在这个网站下面的链接,但它并没有真正提供一个解决方案,使并行处理的工作:Caret on R spills "unable to find variable "optimismBoot"" error message

回答

23

还有就是插入符GitHub的页面在这个问题上的参考。 他们似乎已经固定它最近

在这里看到: https://github.com/topepo/caret/issues/706

在这种情况下,我想直接从GitHub安装插入符号应该解决的问题。

devtools::install_github('topepo/caret/pkg/caret')

在这里看到: https://github.com/topepo/caret

遵循以下步骤:(我假设你正在使用RStudio)

  1. 安装devtools包照常
  2. 运行命令devtools::install_github('topepo/caret/pkg/caret')并检查输出以确保软件包是从github更新的
  3. 重新启动RStudio/R。 package explorer中的脱字符号版本与以前相同,但是程序包将使用新代码
  4. 要确保它已更新,可以使用caret:::nominalTrainWorkflow输出此已更改的内部函数的源代码,并确保以下内容线在那里:export <- c("optimism_xy")。如果你现在做,该线将有optimismBoot代替optimism_xy

PS: 最新插入符号的版本发布日期为9月7日,2017年。所以,应该更新解决问题为好。

+1

似乎修复发生在2017年9月11日。0-77)没有修复:) – armen

+1

@armen:该死elapsedTime! :-)'install_github'是前进的方向 –

+1

我认为我所能做的就是等待新版本的脱字符号?我目前安装了版本6.0-77,检查CRAN更新没有发现任何更新。任何想法新版本发布的频率? – cag

2

我正在面对这个问题,当我更新软件包时,新的脱字号版本是caret_6.0-77,现在我通过下载老版本的脱机软件包解决它是caret_6.0-76从cran档案文件包中查看此链接点击here!,然后使用工具菜单中的Rstudio在本地安装包文件,然后从弹出菜单中选择安装包出现对话框选择从文件安装(.extension)

我希望这有帮助

0

我会说使用example from the docs并行处理。

library(parallel) 
library(doMC) 
# use all cores except one 
doMC::registerDoMC(cores = parallel::detectCores() - 1) 

这就是你需要做的,那么你就可以运行train(),它应该使用指定的内核数量。 我改编了一下,用parallel库动态检测核心数。

相关问题