2016-04-26 75 views
7

我在聯網的計算機上運行R,我沒有對C驅動器上大多數位置的寫入權限。但是,我的IT部門決定將整個CRAN存儲庫加載到C驅動器上的默認庫位置。我強烈希望自己管理我的軟件包,並在我可以安裝的網絡驅動器上安裝位置,但我試圖讓R忽略並完全忽略C驅動器的位置。如何更改和刪除默認庫位置?

我已經嘗試創建.Rprofile文件來設置庫的位置,但不管我做什麼,.libPaths()似乎都不會忘記默認位置。我曾嘗試以下:

.Library <- file.path("N:/My Documents/R/win-library/3.2") 
.Library.site <- file.path("N:/My Documents/R/win-library/3.2") 
.lib.loc <- file.path("N:/My Documents/R/win-library/3.2") 
.libPaths(.libPaths()) 

其中N個驅動器上的路徑爲新的位置我想成爲唯一庫路徑。但是,當我重新啓動R和運行.libPaths(),我仍然可以看到這一點:

[1] "\\\\fileu/users$/username/My Documents/R/win-library/3.2" 
[2] "C:/Program Files/R/R-3.2.4/library" 

(在一個側面說明,我試圖從符號「\ fileu」引用到N個驅動器參考切換。)

我知道已經有過去(例如,here)這個問類似的問題,但我有特殊的問題是,它不是忘記 C盤位置。我似乎無法抹去這一切。任何幫助將不勝感激!

+1

您是使用raw R還是通過RStudio接口? RStudio有自己的路徑設置... –

+0

是不是你想要的?它首先在'/ my docs/...'中查找,然後在默認的'/ program files/...'中查找。默認情況下,所有軟件包的存儲位置都包含在base中,因此如果您的新libpath中沒有這些文件並且沒有備份libpath,那麼您將從哪裏獲得這些軟件包? – rawr

+0

保留一個軟件包子集可能更明智一些,那些你最關心的新文件夾。這樣,你可以保持它們是最新的,但不必擔心你可能永遠不會(直接)使用的許多軟件包。 – lmo

回答

6

這裏是龍。

assign(".lib.loc", "\your\preferred\library", envir = environment(.libPaths)) 
+0

嗯,我也讀過直接設置.lib.loc不受支持,但它也有實際工作成功的優勢。所以我將這個標記爲正確的答案。謝謝,@Andrie! –

+0

這個答案似乎已經過時了,'.lib.loc'返回錯誤:object'.lib.loc'not found'和'?.lib.loc'指示我去一個不存在函數的列表:'函數或者這裏列出的變量不再是R的一部分,因爲它們不再需要。「 –

1

如果你想改變你的庫的位置永久使用這個命令: .libPaths(「盤符:/位置/位置」)

如果你想改變你的庫的位置在特定會話RStudio(即用於臨時更改)使用: assign(「。lib.loc」,「drive:/ location/location」,envir = environment(.libPaths))