无法在 R 中加载包
Cannot load package in R
从昨天开始,我无法加载一些常用的包,例如reshape2
和 stringr
通过库命令。
重现我的问题的步骤:
1) 在 Rstudio 服务器(版本 0.99.467)中启动一个新会话。我还终止了 Rstudio 服务器中的活动会话。
2) 运行 这些代码
library(ggplot2)
library(stringr)
3) 获取错误信息:
Error in unloadNamespace(package) :
namespace ‘stringr’ is imported by ‘reshape2’ so cannot be unloaded
Show Traceback
使用调试重新运行
Error in library(stringr) : “stringr” version 0.6.2 cannot be unloaded.
但是如果 stringr
在 ggplot2
之前加载,我不会收到错误消息。我应该如何解决这个问题。感谢您的任何建议。
我可能必须将 R 更新到 3.2
我的 R 会话信息:
R version 3.1.3 (2015-03-09)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
[5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 LC_PAPER=en_AU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_1.0.0
loaded via a namespace (and not attached):
[1] colorspace_1.2-4 digest_0.6.4 grid_3.1.3 gtable_0.1.2 MASS_7.3-39 munsell_0.4.2 plyr_1.8.1
[8] proto_0.3-10 Rcpp_0.11.2 reshape2_1.4 scales_0.2.4 stringr_0.6.2 tools_3.1.3
我通过更新 R 和所有 R 包解决了我的问题。
我猜问题是因为我在不同的地方(系统文件夹或个人库)安装了相同的包,所以旧版本的 stringr 或 reshape2 导致了这个问题。 R 试图加载旧版本的包。
尽管对我来说更新 R 是一个好习惯,但没有必要解决同样的问题。该问题可能由少数 .libPaths()
引起。 .libPaths("C:/Program Files/R/R-3.4.3patched/library")
可以指定一个文件夹。之后只需重新安装软件包,它就可以工作了。
我的代码:
> .libPaths()
[1] "L:/My Documents/R/win-library/3.4" "C:/Program Files/R/R-3.4.3patched/library"
> .libPaths("C:/Program Files/R/R-3.4.3patched/library")
> packages<-c('ggplot2','data.table','knitr','xtable')
> install.packages(packages)
> lapply(packages,library,character.only=T)
尽管问题已解决,但我希望它能对某人有所帮助。
从昨天开始,我无法加载一些常用的包,例如reshape2
和 stringr
通过库命令。
重现我的问题的步骤:
1) 在 Rstudio 服务器(版本 0.99.467)中启动一个新会话。我还终止了 Rstudio 服务器中的活动会话。
2) 运行 这些代码
library(ggplot2)
library(stringr)
3) 获取错误信息:
Error in unloadNamespace(package) : namespace ‘stringr’ is imported by ‘reshape2’ so cannot be unloaded Show Traceback
使用调试重新运行
Error in library(stringr) : “stringr” version 0.6.2 cannot be unloaded.
但是如果 stringr
在 ggplot2
之前加载,我不会收到错误消息。我应该如何解决这个问题。感谢您的任何建议。
我可能必须将 R 更新到 3.2
我的 R 会话信息:
R version 3.1.3 (2015-03-09)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu precise (12.04.5 LTS)
locale:
[1] LC_CTYPE=en_AU.UTF-8 LC_NUMERIC=C LC_TIME=en_AU.UTF-8 LC_COLLATE=en_AU.UTF-8
[5] LC_MONETARY=en_AU.UTF-8 LC_MESSAGES=en_AU.UTF-8 LC_PAPER=en_AU.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C LC_MEASUREMENT=en_AU.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_1.0.0
loaded via a namespace (and not attached):
[1] colorspace_1.2-4 digest_0.6.4 grid_3.1.3 gtable_0.1.2 MASS_7.3-39 munsell_0.4.2 plyr_1.8.1
[8] proto_0.3-10 Rcpp_0.11.2 reshape2_1.4 scales_0.2.4 stringr_0.6.2 tools_3.1.3
我通过更新 R 和所有 R 包解决了我的问题。
我猜问题是因为我在不同的地方(系统文件夹或个人库)安装了相同的包,所以旧版本的 stringr 或 reshape2 导致了这个问题。 R 试图加载旧版本的包。
尽管对我来说更新 R 是一个好习惯,但没有必要解决同样的问题。该问题可能由少数 .libPaths()
引起。 .libPaths("C:/Program Files/R/R-3.4.3patched/library")
可以指定一个文件夹。之后只需重新安装软件包,它就可以工作了。
我的代码:
> .libPaths()
[1] "L:/My Documents/R/win-library/3.4" "C:/Program Files/R/R-3.4.3patched/library"
> .libPaths("C:/Program Files/R/R-3.4.3patched/library")
> packages<-c('ggplot2','data.table','knitr','xtable')
> install.packages(packages)
> lapply(packages,library,character.only=T)
尽管问题已解决,但我希望它能对某人有所帮助。