-1

R は初めてです。遺伝的アルゴリズム関連の機能にパッケージ「genalg」を使用しています。このパッケージには「rgba」という機能があります。この関数(rbga)を呼び出すとき、別の関数(let A)(ユーザーが作成した評価関数)の参照を引数として渡す必要があり、(A)は「rbga」関数によって呼び出されますが、いくつかの値にアクセスしたい「rbga」関数によって「A」に渡されない「A」内。そのために環境変数を使用できますが、これを行う他の方法はありますか?

編集:

evaluate<-function(x,y,z) # x,y,z arguments passed by rbga 
{ 
 q=p # p is neither x,y,z nor local to this function.
}

result<- rbga(..,evalFunc=evaluate,..) # calls the function evaluate.

関数「評価」では、pを使用したいと思います。p は呼び出し元の関数によって渡されず、呼び出された関数に対してローカルではないため、何らかの形で渡す必要があります。どうやってやるの?

4

1 に答える 1

1

ドキュメントから、両方のタイプのユーザー定義関数が明確に定義されたインターフェースを持っているようです。evalFunc染色体のベクトルとmonitorFunc、パッケージがこの関数に渡す内部オブジェクトを受け取り、ユーザーはそこからたとえばプロットに何かを取得できます。

現在の実装では、カスタムのユーザー定義引数をこれらの関数に追加することはできません。これを機能させるには、パッケージ コードを微調整する必要があります。

于 2013-04-17T14:55:23.320 に答える