0

私の目的は、Rコードによって行われる作業をより適切に整理することです。

特に、私が書いたRコードを異なるRファイルに分割すると、おそらく各Rファイルが異なるタスクを実行するのに役立つ可能性があります。さまざまなMファイルを使用してMatlabで何ができるかを考えています。ここでは、さまざまなMファイルで記述された関数をメインコードから直接簡単に呼び出すことができます。

このRファイルを関数の形で書くのは便利ですか?メインコードでこれらのRファイル/関数をどのように呼び出すことができますか?

ありがとう

4

3 に答える 3

2

source("filename.R") を使用して、メイン スクリプトにファイルを含めることができます。

ディレクトリ全体を含める準備ができている関数があるかどうかはわかりませんが、 list.files() を使用して記述し、各ファイル名に対して source を動的に呼び出すのは簡単です。たとえば、*.R のみをリストするようにファイルをフィルタリングすることもできます。

于 2012-12-28T17:33:09.763 に答える
0

Rパッケージを作成するつもりがない限り、組織を再考する必要があります。RはMatlabではありません。よろしくお願いします。必要な数の関数を1つのファイルに配置し、を使用してそれらすべてを環境で使用できるようにすることができます source foo.r。ジェネリック関数のコレクションを作成していて、パッケージを作成したくない場合は、これがよりクリーンな方法です。
副次的な考えとして、入力引数を追加して、ツールの一部をより柔軟にすることを検討してください。それほど多くの個別の関数/ファイルは実際には必要ないことに気付くかもしれません。簡単な例として、ある関数do_it_double、別の関数、さらにdo_it_integer別の関数do_it_characterがあり、それらはすべて基本的に同じことを行う場合は、それらを1つにマージするだけです。do_it_all(x,y,datatype='double') 必要に応じて、デフォルトのデータ型をオーバーライドします。(これは内部入力検証で実行できることを知っています。例を示しています)

于 2012-12-28T22:22:38.390 に答える
0

あなたのアプローチはうまくいっているかもしれません。コードを関数にラップし、1 つの R 関数に対して 1 つの R ファイルを使用することをお勧めします。

R コードの編成を支援することを目的としたパッケージdevtoolsおよびProjectTemplateを見ると興味深いかもしれません。

于 2012-12-28T16:42:48.153 に答える