安装RStudio后,我跑了:
library()
警告讯息: 库'/ usr / local / lib / R / site-library','usr / lib / R / site-library'不包含包
然后我输入:
.libPaths()
[1] "/home/avalon/R/x86_64-pc-linux-gun-library/3.2"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
如何删除[2]和[3]以防止再次出现警告信息?
预期产出:
.libPaths()
[1] "/home/avalon/R/x86_64-pc-linux-gun-library/3.2"
[4] "/usr/lib/R/library"
答案 0 :(得分:4)
要做的第一件事是阅读其上的联机帮助页(?.libPaths
),您将看到:
' .libPaths'用于获取或设置R知道的库树(因此在查找包时使用)。如果使用参数“new”调用,则库搜索路径将设置为
unique(c(new, .Library.site, .Library))
中的现有目录,并返回此值。如果没有参数,则返回具有当前活动库树的字符向量。
(重点补充)。这应该让我们想知道.Library.site
持有什么。奇怪的是,它拥有全系统(ergo" site")库路径,并且应该#34;永远保持,所以他们总是保持。
进一步说:
' .Library.site'可以通过环境变量来设置' R_LIBS_SITE' (作为非空的以分号分隔的库树列表)。
所以修复它的一种方法是在启动R 时给它一个空字符串 (不能在R中完成):
# in bash on the command line:
$ R_LIBS_SITE=" " R
# in R
R> .libPaths()
[1] "/usr/lib/R/library"
使用RStudio实现此功能的方法是创建一个至少包含以下内容的~/.Renviron
文件:
R_LIBS_SITE=" "
完成后,您不必再采取任何措施从.libPaths()
删除辅助站点库路径:
R> .libPaths()
[1] "/usr/lib/R/library"
假设您正在执行以下操作:
R> .libPaths(c("/home/avalon/R/x86_64-pc-linux-gun-library/3.2", .libPaths()))
[1] "/home/avalon/R/x86_64-pc-linux-gun-library/3.2"
[2] "/usr/local/lib/R/site-library"
[3] "/usr/lib/R/site-library"
[4] "/usr/lib/R/library"
如果您想在完成此操作后进行更正,请执行以下操作:
R> .libPaths( c(.libPaths()[c(1,4)]) )
[1] "/home/avalon/R/x86_64-pc-linux-gun-library/3.2"
[2] "/usr/lib/R/library"
或者,你可以这样做第一次(即,虽然它仍然有三个元素,其中两个对你不好):
R> .libPaths(c("/home/avalon/R/x86_64-pc-linux-gun-library/3.2", .libPaths()[3]))
[1] "/home/avalon/R/x86_64-pc-linux-gun-library/3.2"
[2] "/usr/lib/R/library"
当然有一种方法可以通过编程方式过滤路径,而不是盲目地使用第3个元素,但这应该适用于此。