簡體   English   中英

R .libPaths()RStudio和命令行R之間的區別

[英]R .libPaths() difference between RStudio and command-line R

當我從命令行運行R時:

> library(ggplot2)
...
> path.package('ggplot2')
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13/ggplot2"
> .libPaths()
[1] "/home/yang/R/x86_64-pc-linux-gnu-library/2.13"
[2] "/usr/local/lib/R/site-library"                
[3] "/usr/lib/R/site-library"                      
[4] "/usr/lib/R/library"                           
> Sys.getenv('R_LIBS_USER')
[1] "~/R/x86_64-pc-linux-gnu-library/2.13"

(注意:當我從我的shell中檢查時,該環境變量實際上不存在。)

但是從同一個盒子上運行的RStudio Server,以及以同一用戶身份登錄后:

> path.package('ggplot2')
[1] "/home/yang/R/library/ggplot2"
> .libPaths()
[1] "/home/yang/R/library"              "/usr/local/lib/R/site-library"    
[3] "/usr/lib/R/site-library"           "/usr/lib/R/library"               
[5] "/usr/lib/rstudio-server/R/library"
> Sys.getenv('R_LIBS_USER')
[1] "/home/yang/R/library"

你能解釋為什么這些在默認情況下不同嗎? 這是RStudio定制嗎? (為什么?)先謝謝。

來源直接回答:

http://support.rstudio.org/help/discussions/questions/204-r-libpaths-difference-between-rstudio-and-command-line-r

嗨,您好,

是的,我們有一個自定義的R_LIBS_USER設置,旨在使服務器升級到新版本的R更容易,而不需要每個用戶重命名他們的庫目錄和/或重新構建他們的包。 這樣管理員就可以進行升級而不必擔心他們會破壞用戶的工作環境(意識到這也可以通過編寫為每個用戶執行必要的重命名/重建的升級腳本來實現)。

完全同意在所有情況下都不一定是這樣。 以下是您可以采取的措施:

Rtudio服務器R_LIBS_USER由/etc/rstudio/rsession.conf中的以下設置控制:

 r-libs-user=~/R/library 

此變量支持與R_LIBS_USER相同的通配符(如此處所述: http ://stat.ethz.ch/R-manual/R-patched/library/base/html/libPaths.html),因此您可以將此更改為以下內容讓RStudio表現得像控制台R:

 r-libs-user=~/R/%p-library/%v 

(注意我相信這是重現上面輸出中顯示的目錄的正確語法,但你肯定要仔細檢查一下)

希望能夠解決問題,並且可以根據需要配置內容。 如果您有其他問題或者如果這不起作用,請告訴我們。

JJ

一個快速的谷歌搜索讓我來到這里:

http://support.rstudio.org/help/discussions/problems/868-how-to-configure-libpaths

所以看起來RStudio使用自己的libs,在/etc/rstudio/rsession.conf中設置。 為什么? 誰知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM