【问题标题】:Loading dplyr via Rprofile.site in Rstudio在 Rstudio 中通过 Rprofile.site 加载 dplyr
【发布时间】:2014-11-17 19:24:20
【问题描述】:

自从我找到它后,我就虔诚地使用 dplyr。由于我经常使用它,所以我尝试将library(dplyr) 放入 Rprofile 中的 .First() 函数中。

这会加载 dplyr,但是当我启动 Rstudio 时,dplyr 的一些功能会被屏蔽。例如,当我尝试这样做时:

foo <- mtcars %>% filter( cyl == 4 )

我收到以下错误:

Error in filter(mtcars, cyl == 4) : object 'cyl' not found

一些故障排除表明,如果我在控制台中再次运行 library(dplyr),问题就解决了——很明显,一个/一些 dplyr 的功能被搜索路径下方(或向上,取决于关于你如何看待它。

当我查看我的 search() 路径时,我发现在 dplyr 之后加载了许多其他包,这并不是我真正想要的(我希望 dplyr 是最后加载的东西,或者至少几乎最后):

[1] ".GlobalEnv"        "tools:rstudio"     "package:stats"     "package:graphics"  "package:grDevices" "package:utils"    
[7] "package:datasets"  "package:xlsx"      "package:xlsxjars"  "package:rJava"     "package:dplyr"     "package:methods"  
[13] "Autoloads"         "package:base" 

我在 Windows 7 上,使用 RStudio v.0.98.1028。因为我真的不清楚 Windows + RStudio 如何处理主目录,所以我在 C:/Program Files/R/R-3.1.1/etc/ 中编辑 Rprofile。有什么建议吗?

【问题讨论】:

  • 如果你不把它放在.First函数里面会发生什么?也就是说,如果你只是把它赤裸裸地放入.Rprofile.site文件中?
  • 不舒服。我得到了同样的错误,并且 search() 顺序仍然是一样的。
  • FWIW 我认为将包放入您的 .Rprofile 是一个坏主意,因为它更难重现您的代码。
  • 对此的长期跟进,我遵循了@hadley 的建议,并开始创建一个 Rstudio sn-p,它编写了几行代码来加载我发现自己经常使用的所有库.现在,我输入prep 并敲击 Tab 几次,然后按 ctrl + shift + s 并加载我的所有库,另外,当我稍后返回脚本时,一切都正确加载。

标签: r rstudio dplyr


【解决方案1】:

在 R 的启动顺序中(参见 ?Startup),.First() 在加载其他包的 .First.sys() 之前调用。覆盖filter的是stats包。

.First.sys() 使用 options("defaultPackages") 来确定要加载的内容,所以我建议您在 .First() 函数中编辑它:

options(defaultPackages=c(getOption("defaultPackages"),"dplyr"))

【讨论】:

  • 啊,成功了!我必须改变的一件事是 options('defaultPackages') 是一个列表——你上面添加的 dplyr 作为一个新的列表项。为了让 dplyr 进入向量本身,我不得不使用: options(defaultPackages=c(options("defaultPackages")[[1]],"dplyr")) 谢谢!
猜你喜欢
  • 2015-09-01
  • 1970-01-01
  • 2016-05-15
  • 2015-06-07
  • 2017-12-24
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
相关资源
最近更新 更多