0

さまざまな(〜50データセット)で実行する必要がある標準のデータ分析手順があります。私はしばらくの間それを開発してきました、そして今、私はそれをデータセットを取り、各データセットのためにいくつかの賢明なテーブルを吐き出す関数に変えたいと思うところまで来ました。ただし、実行された手順は4つのスクリプトファイルにまたがっており、これまで私はsourceそれを実行するために次々と使用してきましたが、では不可能のようfunctionです。

次の問題があります。

foo <- function(data) {
  a <- somevariable
  source("..somefile..") #The code in there uses a, but a is not in the workspace...
  ..
  continue
  ..
}

データセットで実行すると、コードがクラッシュします。

関数のコンパイル中に他のファイルからコマンドをコピーして貼り付ける方法(コマンド)はありますか(実際のコンパイルではありませんが、別の方法で呼び出す方法がわかりません)?自分でコピーして貼り付けることができることは知っていますが、コードを読みやすくするために別々のファイルに保持したいニューラルネットワークとARFIMA推定がさまざまなステップに含まれているため、そうはしません。とにかく、関数はコピーアンドペースト後、200行のコードのようなものになりますが、これは間違いなくユーザーフレンドリーではありません...

どうも

4

3 に答える 3

1

最小限の例から始めることをお勧めします。これにより、関数の作成に伴う内容、source() を使用して関数を R にロードする方法、引数の使用方法、および関数の呼び出し方法を理解できるようになります。それを行った後、うまくいけば、次にどこに行くべきかがより明確になるでしょう.

あなたの質問に答えるために、スクリプトに 200 行のコードが含まれていて、1 つのことしか実行しない場合 (つまり、1 つの FUNCTION を実行する場合)、それを関数にラップすることを検討する必要があります。スクリプトには、元の 200 行のコードではなく 1 行 (関数呼び出し) のみを含めることができるため、これによりユーザー フレンドリーさが低下するのではなく、むしろ向上します。

于 2013-02-20T14:39:18.260 に答える
0

私はここで推測していますが、次のようなものです:

myfunc <- function() {
if (something) source("path to script")
} else {
if (another thing) source("path to another script")
}
Do calcs and return the result
}

または、スクリプトへのパスが関数の引数である可能性があります。

于 2013-02-20T14:59:55.403 に答える