Skip to content
junlingm edited this page Mar 7, 2023 · 1 revision

Loggers

A simulation object maintains a list of logger, which observes the state changes of an agent. At the specified times in a run, the values of the logger are reported and recorded in a data.frame object, where the columns represent variables, and rows represent the observation at each time point given to each run. Each logger has a name, which becomes the the column name in the data.frame.

Create a logger of the Counter class

Usage

    newCounter = function(name, from, to=NULL, initial=0)

Arguments

  • name: the name of the counter, must be a length-1 character vector
  • from: a list specifying state of the agent, or a character or numeric value that is equivalent to list(from). please see the details section
  • to: a list (can be NULL) specifying the state of the agent after the state change, or a character or numeric value that is equivalent to list(from). please see the details section
  • initial: the initial value of the counter. Default to 0.

Return value

an external pointer that can be passed to the Simulation class' addLogger method.

Details

If the argument to=NULL, then the counter counts the transitions from from to to. Otherwise, it counts the number of agents in a state that matches the state argument. Specifically, if the agent jumps to state, then the count increases by 1. If the agents jumps away from state, then the count decreases by 1.

Create a state logger

Usage

    newStateLogger = function(name, agent, state.name)

Arguments

  • name: the name of the logger. A length-1 character vector
  • agent: the agent whose state will be logged. An external pointer
  • state.name: the state name of the state of the agent to be logged. A character vector of length 1.

Details

If a state changed happened to any agent, the specified state of the agent given by the agent argument will be logged. If state.name==NULL, then the state of the agent who just changed is logged.

The agent must be an external pointer. To use an R6 object, we need to use its active field $get to get the external pointer.

The state to be logged must have a numeric value.

Clone this wiki locally