7

多肢選択式テストの採点などのタスクを自動化するために設定したRStudioプロジェクトがいくつかあります。タスクを実行するために必要な機能はテキストファイルに保存されるだけであり、私や他のユーザーがそれらを利用できるようにするために、起動時.Rprofileのようなものを実行するファイルを使用しています。source("MyFunctions.R")ファイル.RprofileがRStudioプロジェクトのベースディレクトリにある場合、プロジェクトを開くと自動的に実行されます

ただし、スクリプトがソースされる前にベースRパッケージによって提供される関数がロードされないというエラーが発生することがあります。たとえば、次のようread.csvな関数です。installed.packages

Error in eval(expr, envir, enclos) : 
  could not find function "installed.packages"

ロードに失敗したすべてのデフォルトパッケージに明示的な呼び出しをsource()追加するのではなく、実行前にデフォルトパッケージがロードされるのを待つ方法はありますか?library()

4

2 に答える 2

7

これは、?Startupかなり決定的なようです:

サイトとユーザープロファイルファイルがソースされる場合、「base」パッケージのみがロードされるため、他のパッケージのオブジェクトは、たとえば「utils :: dump.frames」によって、または関連するパッケージを明示的にロードした後に参照する必要があることに注意してください

その明示的な推奨事項に基づいてlibrary()、必要なパッケージをロードするために使用することは最善の策のように見えます。

于 2012-11-28T00:42:29.693 に答える
2

?StartupJoshの回答によってドキュメントに向けられたので、すべてのデフォルトパッケージのロードを処理する関数のように見えるので.First.sys()、上部に呼び出しを追加する.Rprofileことはオプションのようです。それは通常、後.Rprofileに実行されます。これは、私が得ていたエラーを説明します。

于 2012-11-28T00:59:25.553 に答える