R默认包已加载,尽管使用.Rprofile

  • 本文关键字:Rprofile 默认 加载 r
  • 更新时间 :
  • 英文 :


我使用RGui/RStudio中的R 3.5.1和用户主目录中的".Rprofile"文件,其中只有一个条目来预加载包"tidyverse":library(tidyverse)

当想要使用包"dplyr"的filter()函数时,它会被包"stats"的filter()函数屏蔽,该函数在R启动过程中作为源".Rprofile"后的默认包加载。

这种行为似乎与?Startup告诉我们的内容相矛盾:"请注意,当站点和用户配置文件来源于时,仅加载基本包,因此其他包中的对象需要由例如utils::dump.frames引用,或在显式加载相关包后引用。">

有人能告诉我,为什么尽管使用了用户配置文件,但像"stats"这样的默认包仍被加载?非常感谢!

我的问题已经在这里得到了回答:R dplyr过滤器没有屏蔽基本过滤器?[副本]

如前所述,?Startup的文档中写道:

请注意,当站点和用户配置文件来源时,只加载基本包,因此其他包中的对象需要通过例如utils:dump.frames或在显式加载相关包后引用。

不幸的是,这很容易被误解,因此最初导致了我的问题。短语">仅加载基本包"意味着,只有base包将作为启动过程中的第一个包加载,但其他默认包(如stats(将在通过用户.Rprofile文件来源的包之后加载。

这就是为什么在启动过程中加载在用户.Rprofile文件中的包dplyrfilter()函数被在源用户.Rprofile文件之后加载的默认包statsfilter()函数屏蔽的原因。

.Rprofile在R加载基本库之前运行加载包stats第一个

library('stats', warn.conflicts = TRUE, verbose = TRUE) 
library('dplyr', warn.conflicts = TRUE, verbose = TRUE)

最新更新