【发布时间】:2019-01-28 15:04:03
【问题描述】:
我最近尝试使用 .Rprofile 文件。 在我的项目中,我总是使用 tidyverse 包,所以我想我会在项目的主目录中创建一个 .Rprofile 文件来加载库:
library(tidyverse)
当我打开项目时确实加载了库,但我没有像往常一样运行。
此代码给出错误:
tibble(a = 1:5) %>% filter(a > 4)
过滤器错误(., a > 4):找不到对象“a”
我假设我必须在 .Rprofile 中包含一些内容,但我找不到它是什么。
【问题讨论】:
-
请检查加载的包,因为我无法重现该问题
-
在 .Rprofile 中加载包几乎总是一个坏主意,因为这会将您的软件与您的特定配置联系起来。
-
你需要在
tidyverse之前加载默认包。使用您的解决方案,您之前加载了tidyverse,因此filter函数(如果未指定)来自stats包。即使非常难看,在.Rprofile中的library(tidyverse)之前插入invisible(lapply(.Options$defaultPackages, function(x) library(x, character.only=TRUE)))。 -
我还想强调@G.Grothendieck 所说的:不要在您的个人资料中加载包。这是一种非常糟糕的做法,并且会降低您的代码的可移植性。
-
谢谢,您的解决方案运行良好。我还找到了
options(defaultPackages=c(getOption("defaultPackages"), "tidyverse"))。但是,我会听取您的建议,而不是在 .Rprofile 中批量打包。