函數A中,函數B從函數A的環境中獲取4個對象並對其進行修改。然後,我需要將這些對象發送回函數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
}
如果這些對象永遠一起走將它們保存在列表中可能更有意義 - 甚至可以爲它們中的三個創建一個S3類。 – Gregor
請問你能更具體嗎? – Fredkho
我已經添加了答案。我不認爲我能比你更具體地瞭解你正在做的事情的類型。但是tl; dr會將它們保存在一個列表中,並使用'lapply' *而不是將它們從列表中移出並在每一步中重新放入。 – Gregor