【问题标题】:Error: (converted from warning) package ‘glmnet’ is not available (for R version 3.5.3)错误:(从警告转换)包“glmnet”不可用(对于 R 版本 3.5.3)
【发布时间】:2020-07-17 02:02:33
【问题描述】:

我已经尝试了很多方法来让它工作,但我没有任何运气。我正在使用 Debian 8,我刚刚重新下载了 R,即获得了操作系统可能的最高版本。我正在下载一个将 glmnet 作为其包之一的 github 包,我收到以下错误:

Error: (converted from warning) package ‘glmnet’ is not available (for R version 3.5.3)

我知道还有其他类似的帖子,但我都试过了,但它们仍然不起作用。我真的需要使用例如Debian 9 然后获得更高版本以能够使用 glmnet 还是有更简单的解决方法?

更新

我尝试了 RyanFrost 的建议,它让我更进一步,但现在我在 glmnet 包中遇到了错误。第一次运行命令时,我收到有关包格的错误。我运行了install.packages("lattice") 并重新运行了下面的代码。现在我遇到了这些错误:

> install_version("glmnet", version = "3.0")
Downloading package from url: https://cloud.r-project.org/src/contrib/Archive/glmnet/glmnet_3.0.tar.gz
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
* installing *source* package ‘glmnet’ ...
** package ‘glmnet’ successfully unpacked and MD5 sums checked
** libs
gfortran   -fpic  -g -O2 -fstack-protector-strong  -c glmnet5dpclean.f -o glmnet5dpclean.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c glmnet_init.c -o glmnet_init.o
gcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG      -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c pb.c -o pb.o
pb.c: In function ‘setpb_’:
pb.c:21:3: warning: implicit declaration of function ‘R_GetCurrentEnv’ [-Wimplicit-function-declaration]
   eval(s, R_GetCurrentEnv());
   ^                                                                                                                                       
pb.c:21:11: warning: passing argument 2 of ‘Rf_eval’ makes pointer from integer without a cast                                             
   eval(s, R_GetCurrentEnv());                                                                                                             
           ^                                                                                                                               
In file included from pb.c:1:0:                                                                                                            
/usr/share/R/include/Rinternals.h:955:6: note: expected ‘SEXP’ but argument is of type ‘int’                                               
 SEXP Rf_eval(SEXP, SEXP);                                                                                                                 
      ^                                                                                                                                    
gcc -std=gnu99 -shared -L/usr/lib/R/lib -Wl,-z,relro -o glmnet.so glmnet5dpclean.o glmnet_init.o pb.o -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR                                                                                                                                  
installing to /usr/local/lib/R/site-library/glmnet/libs                                                                                    
** R
** data
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
Error: package or namespace load failed for ‘glmnet’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/usr/local/lib/R/site-library/glmnet/libs/glmnet.so':
  /usr/local/lib/R/site-library/glmnet/libs/glmnet.so: undefined symbol: R_GetCurrentEnv
Error: loading failed
Execution halted
ERROR: loading failed
* removing ‘/usr/local/lib/R/site-library/glmnet’
Error: Failed to install 'unknown package' from URL:
  (converted from warning) installation of package ‘/tmp/RtmpAoQtn8/remotes75e4327440a/glmnet’ had non-zero exit status

【问题讨论】:

    标签: r glmnet


    【解决方案1】:

    glmnet 包在 glmnet 版本 3.0(3.0-1 以后)之后开始需要 R 版本 3.6。

    因此,要尝试的一件事是安装 3.0 版(仅需要 R 3.5+)。

    您可以为此使用开发工具:

    library(devtools)
    
    install_version("glmnet", version = "3.0")
    

    【讨论】:

    • 感谢您的回复。您的建议使我更进一步,但现在我在下载 glmnet 时遇到错误。我更新了我的问题以显示我收到的当前错误。有什么想法吗?
    • 尝试运行devtools::has_devel()。这将告诉您是否拥有编译作为 glmnet 包一部分的 C 文件所需的构建工具。
    • 感谢您的提示。我刚刚安装了 Debian 9 并下载了软件包。有一些减速带,但没有像上面这样的问题。如果有人看到像上面这样的错误,你很可能需要升级你的系统。
    猜你喜欢
    • 2019-09-20
    • 1970-01-01
    • 2018-09-05
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2012-11-28
    • 2020-02-09
    • 2017-07-19
    相关资源
    最近更新 更多