1

Rでoptimを使用して最適化ルーチンを実行し、プログラムに何を返したいかを伝えています。たとえば、 を入力return(op1$par)すると、4 つすべての変数値が返されます。それは問題ありません。実行するreturn(op1)と、明らかに最適化ルーチンからすべての情報が得られます (パー、値、収束など)。ただし、この形式では、出力で par 値にアクセスできず、単に 4 つの値があることが詳細に示されます。

ここで必要なのは、パラメーター値と収束情報を同時に取得することです。R は私にこれを呼び出させない return(op1$par, op1$convergence)ので、これら 2 つのエンティティを 1 回の実行で取得するための最良の方法を探していますか?

これをファイルに書き込んで何千回も繰り返し、画面上で一度呼び出すだけではないことを指定する必要があります。

乾杯

4

2 に答える 2

2

次のようなものを試してください。

return(c(Parameters=op1$par, Convergence=op1$convergence))

名前ParametersConvergenceは、この結果がベクトルになるため、パラメーターと収束を識別するためだけのものです。

于 2012-09-07T20:25:23.860 に答える
0

設計上、関数は1つのオブジェクトのみを返すことができます(そうでない場合、のような割り当てa <- fn(b)は混乱します。どのものを割り当てますか?)。ただし、そのオブジェクトは、ベクトルまたはリスト(これが機能するもの)にすることができますoptim。だからあなたの議論を次のようなもので包んでください

return(c(par=op1$par, convergence=op1$convergence))

またはより一般的に(異なるタイプのオブジェクトの場合)、

return(list(par=op1$par, convergence=op1$convergence))
于 2012-09-07T20:47:54.463 に答える