簡體   English   中英

是否可以為R包設置默認位置而不是給用戶選擇?

[英]Is it possible to set a default location for R packages instead of giving the user a choice?

下午好!

我是一所大學的系統管理員,負責為計算機實驗室設置映像。 R是默認映像的一部分,並且在最長的時間內,我們僅對所有實驗室用戶進行了一次登錄,因此我們可以一次設置默認目錄,然后在多個系統上對其進行映像。 這已經改變了,我們現在讓所有用戶都使用個性化登錄進行登錄。 這使我遇到了R遇到的問題,以及為什么要轉向您。

正如您大多數人所知,您看到的是,第一次運行R時,將打開一個對話框,提示您輸入保存軟件包等的位置。 點擊“確定”,這是用戶文件,但是點擊其他任何文件,無論它放在哪里。 問題是,我們已經非常嚴格地鎖定了系統,並且除了用戶的個人目錄之外,其他任何訪問權限都不是我們想要做的。

我的問題是-有沒有辦法在第一次運行時通過免提腳本或只是某個地方的設置來強制R默認為系統上用於存儲程序包的用戶目錄? 這樣可以避免我不得不授予所有用戶對R目錄的讀寫權限,並且由於他們實際上沒有選擇更改它的可能性,因此,出現混亂的可能性較小。 如果必須繼續在該文件夾中授予權限,可以,但是我不想。

謝謝!

我目前無法對此進行測試,但是我相信您可以將Sys.setenv(R_LIBS_USER=path.expand('~\\R\\library'))到R etc目錄中的Rprofile.site文件中。

編輯您的.Renviron文件以設置默認路徑:

# .Renviron file
R_LIBS = '~/.R/library'

'...默認為系統上用於存儲程序包的用戶目錄...'

另一種方法,特別是如果您想要為教職員工/學生進行不同的設置時,將使用組策略為登錄時所選計算機/用戶設置環境變量。

例如相當於...

SETX "R_LIBS" "\\fileserver2/department_shared/public/r/packages"

您可以通過啟動R並嘗試輕松地檢查這是否有效

Sys.getenv("R_LIBS")

此外,該命令還可以顯示安裝了哪些軟件包:

rownames(installed.packages())

暫無
暫無

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

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