【问题标题】:R "caret" package running into compile environment errorR“caret”包运行到编译环境错误
【发布时间】:2018-12-02 22:50:03
【问题描述】:

我已尝试寻找答案,但似乎绝对找不到任何解决方案。我最近为 R 安装了“caret”包,但是当我尝试训练任何模型时,它给了我以下错误:

Warning: namespace ‘compiler’ is not available and has been replaced
by .GlobalEnv when processing object ‘sep’
Error in comp(expr, env = envir, options = list(suppressUndefined = TRUE)) : 
  could not find function "makeCenv"

据我所知,这与内置编译器包有关。我看到的大多数答案都提到了 doMC 包,但我认为这与这里无关,因为我没有并行化任何东西。我已经能够在其他机器上成功运行相同的代码,所以我完全不知道问题可能是什么。这是一些导致我出错的示例代码:

library(caret)
fit.knn <- train(Species ~ ., data=iris, method="knn")

我使用什么方法或训练什么数据似乎并不重要。我已经尝试重新安装软件包,并重新安装 R。我在 Windows 上运行 R v.3.3.2,插入符号包是最新版本。任何帮助将不胜感激!

【问题讨论】:

    标签: r r-caret


    【解决方案1】:

    我终于找到了解决这个问题的方法。我一直在使用一种特殊的设置,我将我的库位置设置为一个全局文件夹,这样我就不必每次更新 R 时都将我的所有包从“3.2”文件夹移动到“3.3”文件夹等。我的解决方案有效,但副作用是删除了 Program Files 中的默认库位置(包含基本包的位置)。

    这似乎对我所做的一切都很好,所以在我开始使用 caret 之前我从来没有注意到一个问题。但出于某种原因,显然内置的 compiler 包(由 caret 的某些依赖项使用)在该设置下无法正常工作,需要显式引用.libPaths() 中的程序文​​件库位置。改回默认设置后,一切似乎都正常。

    因此,尽管这是一个晦涩难懂的错误,而且人们可能不会遇到这种情况,但对于那些从 Google 来到这里的人,请检查 libPaths() 并确保那里有两个位置:您的用户文件夹(在“我的文档”中默认)和包含所有基本包的默认库位置(在“程序文件”中)。

    【讨论】:

    • 我在使用 Caret 包时遇到了同样的问题,可以通过更新 Rstudio 并安装比最新版本旧的 Caret 版本来解决它。
    猜你喜欢
    • 1970-01-01
    • 2013-12-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多