関数A内には、関数Aの環境から4つのオブジェクトを取り出して変更する関数Bがあります。次に、これらのオブジェクトを関数Aの環境に戻す必要があります。R:関数内の関数:管理環境
私はベストプラクティスの推奨事項を探しています: 現在、私がしていることは:関数Bはオブジェクトを含むリストを返し、各オブジェクトは上書きされます機能の環境A.これを処理するより良い方法はありますか? 管理環境に関する議論は非常に複雑であり、これはコミュニティにとって重要で簡単な質問です。以下は
は私の実装
Function A = getObjects(A,B,C){
A= A+1
B= B+1
C= C+1
# Function B returns a list containing the object after certain operations were # performed on these
listFromFunctionB = FunctionB(A,B,C)
A = listFromFunctionB$A
B = listFromFunctionB$B
C = listFromFunctionB$C
#Other operations keep going on objects A,B and C
}
これらのオブジェクトは、常に一緒に行く場合それらをリストに保持する方が理にかなっています.3つのS3クラスを一緒に作成することさえ可能です。 – Gregor
より具体的にお願いしますか? – Fredkho
私は答えを加えました。私は、あなたがやっていることの種類についてより具体的になる前に、私がそれよりも具体化できるとは思わない。しかし、tl; drは*それらをリストに入れて、それらをリストから取り除き、すべてのステップでそれらを戻す代わりに 'lapply' *を使用します。 – Gregor