2014-09-23 40 views
3

因爲我找到了它,所以我虔誠地使用dplyr。由於我使用了這麼多,我試圖將library(dplyr)放在Rprofile的.First()函數中。通過Rstudio中的Rprofile.site加載dplyr

加載dplyr,但是當我啓動Rstudio時,某些dplyr的函數被遮罩。例如,當我嘗試做:

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

我得到了如下錯誤:

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

故障排除的一點透露,如果我在控制檯中再次運行庫(dplyr),能消除問題直到 - 明確一個/一些dplyr的功能越來越被什麼東西掩蓋進一步下跌的搜索路徑(或向上,這取決於你如何看待它

當我看着我的搜索()的路徑,我看到還有一些其他軟件包在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。有什麼建議麼?

+0

,如果你不把它放在'.First'函數內部會發生什麼?也就是說,如果你只是把它放在'.Rprofile.site'文件中? – 2014-09-23 14:29:13

+0

不幸。我得到相同的錯誤,並且search()順序仍然相同。 – crazybilly 2014-09-23 14:35:55

+0

FWIW我認爲將軟件包放入.Rprofile是一個壞主意,因爲它很難重現您的代碼。 – hadley 2014-09-23 22:50:49

回答

4

在R的啓動順序(請參閱?Startup)中,.First()在加載其他程序包之前調用.First.sys()。它是覆蓋filterstats包。

.First.sys()使用options("defaultPackages")確定什麼加載,所以我建議你編輯在.First()功能有:

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

啊,那是它!我必須改變的一件事是選項('defaultPackages')是一個列表 - 你上面添加了dplyr作爲新列表項。 (defaultPackages = c(options(「defaultPackages」)[[1]],「dplyr」)) 謝謝!我們不得不使用dplyr。 – crazybilly 2014-09-23 14:57:56