簡體   English   中英

在軟件包安裝過程中向.First()添加行

[英]Adding line to .First() during package installation

我正在為我的公司設計R包,但他們不是那么精通技術的員工。

為了簡化用戶的生活,我考慮在全球范圍內擁有一組腳本,這些腳本可以在啟動時獲取,以更新和加載相關軟件包。

我的想法是為每個自定義程序包創建一個腳本,該腳本僅在安裝了特殊程序包的情況下才會獲得源代碼。 為此,我需要在用戶安裝其他軟件包時(例如在安裝軟件包A之后)修改.First()函數:

.First() <- function(){
    source('script_to_package_A')
}

並且然后安裝了軟件包B:

.First() <- function(){
    source('script_to_package_A')
    source('script_to_package_B')
}

因此,如果已經定義了.First()且該行尚不在其中,或者如果不存在.Rprofile,則可以在.Rprofile文件中添加一行。

實現這一目標的最佳方法是什么?

最好的祝福托馬斯

編輯:只是為了澄清-我正在尋找的是一種安全的方法來修改在啟動過程中被調用的.First()函數。 這意味着,如果用戶已經定義了.First()函數,則只會添加附加內容,而不是替換舊的.First()。 最好是在安裝特定的軟件包時首先進行添加,但這不是必需的。 我對添加到.First()函數中的內容非常有信心,因此這不是問題。

我懷疑獲得所需內容的最簡單方法是在所有計算機上安裝一個軟件包。 如果可以在每個人的計算機上更改.First函數,則可以安裝軟件包。

您的.First函數將是:

.First() <- function(){
    library(mypkg)
    run_mypkg_fun()
    ##Could also check for package updates
    ##update.packages("mypkg"...)
}

函數run_mypkg_fun可以執行所有所需的檢查,包括:

  • 安裝軟件包
  • 根據安裝的內容運行不同的功能。

暫無
暫無

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

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