設定を見直しています。なくこちらを使うのが一般的です。関数で手軽に値を変更することができます。次のような内容が挿入されます。関数とは違った機能があるため、こちらを使った方が良さそうな気がします。関数で値をセットするのが良いのではないかと思います。関数で値をセットして問題があるのはそのカスタム変数に依存した変数が更新されないことにあります。ファイルをロードする前にカスタム変数の値をセットしておけば問題ないはずです。上記の例に対して少し解説します。変数を登録する際に、変数の依存関係を考慮してソートします。複数箇所に記述するなと言われる理由だと思います。キーワードを指定することで記述可能です。キーワードの存在を確認できないため、変数の依存関係を考慮してソートできません。いうパッケージを作成したとします。値がセットされることを期待しています。古いままということになります。しておく必要があります。無視されることになります。マクロ実行時に次の関数で初期化されます。よって値を取り出していることがわかります。関数で指定した値は無視されます。変数が定義されている場合は指定した値で即上書きするのでそんなことはありません。関数でカスタム変数をセットすることの最大の魅力は、開発者がセッター関数を定義しておけばそのカスタム変数に依存した変数も更新することができることです。そこまで考慮してパッケージ開発をしている開発者はそこまで多くない気がします。関数で値をセットする場合と変わらないことになります。関数を実行するのはパッケージのロード後の方が良さそうですが、セッター関数が定義されていないのであればロード前に実行する方が良さそうです。関数を使って全ての変数をセットするのが良いと思います。メジャーモードや用途ごとに変数の定義箇所を心置きなく分けられますし。パッケージがロードされてなくても変数が定義されてしまうのは少し嫌ですが。関数で分岐が異なるだけなので、この点については現行バージョンでは心配しなくて良さそうです。※このエントリーははてなダイアリーから移行したものです。(a_bicky)都内のソフトウェアエンジニア。使ったサービス開発に従事。っぽいこともやったり。R言語上級ハンドブック共著者。