我在R中编写一个模拟模型来跟踪一组交互代理的行为。为了我自己的理智,我给每个代理提供了自己的S4对象,我在其中存储了它的轨迹和其他参数。目前,我将一个对象传递给一个函数,执行一些操作,然后将该对象传回。例如,
#Create a new class and a sample object
setClass("example", slots = list(N="numeric"), prototype = list(N=0))
agentA<-new("example")
#Define a function to change the value in the N slot
add_one<-function(agent){
agent@N<-agent@N + 1
agent
}
#Call the function.
agentA<-add_one(agentA)
我知道这是有效的,并且对我来说非常重要的是结构是模块化的并且易于调试,但是我想知道来回传递代理对象的开销。大多数对象包含具有几千个数字的数组,并且它们将来回传递数千次。有没有更有效的方法来做到这一点,还是足够接近最佳实践?
我不清楚对象被复制的次数,而不是只传递一个指针。