0

私は、技術に精通していない従業員の会社のために 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() 関数に何を追加するかについてはかなり自信があるので、これは問題ではありません。

4

1 に答える 1

0

欲しいものを手に入れる最も簡単な方法は、すべてのマシンに単一のパッケージをインストールすることだと思います。.Firstみんなのマシンで機能を変更できるなら、パッケージをインストールすることができます。

あなたの.First機能は次のようになります:

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

この関数run_mypkg_funは、次のような必要なすべてのチェックを実行できます。

  • パッケージのインストール
  • インストールされているものを条件として、さまざまな機能を実行します。
于 2012-10-15T15:19:45.073 に答える