2017-09-15 50 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庫動態檢測核心數。

相關問題