eventTable function

Create an event table object

Create an event table object

Initializes an object of class EventTable with methods for adding and querying dosing and observation records

eventTable(amount.units = NA, time.units = NA)

Arguments

  • amount.units: string denoting the amount dosing units, e.g., mg , ug . Default to NA to denote unspecified units. It could also be a solved rxode2 object. In that case, eventTable(obj) returns the eventTable that was used to solve the rxode2 object.

  • time.units: string denoting the time units, e.g., hours , days . Default to "hours".

    An eventTable is an object that consists of a data.frame storing ordered time-stamped events of an (unspecified) PK/PD dynamic system, units (strings) for dosing and time records, plus a list of functions to add and extract event records.

    Currently, events can be of two types: dosing events that represent inputs to the system and sampling time events that represent observations of the system with amount.units and time.units , respectively.

Returns

A modified data.frame with the following accessible functions:

  • get.EventTable() returns the current event table
  • add.dosing() adds dosing records to the event table.
  • get.dosing() returns a data.frame of dosing records.
  • clear.dosing() clears or deletes all dosing from event table
  • ``add.sampling()` adds sampling time observation records to the event table.
  • get.sampling()returns a data.frame of sampled observation records.
  • clear.sampling() removes all sampling from event table.
  • get.obs.rec() returns a logical vector indicating whether each event record represents an observation or not.
  • get.nobs() returns the number of observation (not dosing) records.
  • get.units() returns a two-element character vector with the dosing and time units, respectively
  • copy() makes a copy of the current event table. To create a copy of an event table object use qd2 \<- qd$copy()
  • expand() Expands the event table for multi-subject solving. This is done by qd$expand(400) for a 400 subject data expansion

Examples

# create dosing and observation (sampling) events # QD 50mg dosing, 5 days followed by 25mg 5 days # qd <- eventTable(amount.units = "mg", time.units = "days") # qd$add.dosing(dose = 50, nbr.doses = 5, dosing.interval = 1, do.sampling = FALSE) # # sample the system's drug amounts hourly the first day, then every 12 hours # for the next 4 days qd$add.sampling(seq(from = 0, to = 1, by = 1 / 24)) qd$add.sampling(seq(from = 1, to = 5, by = 12 / 24)) # # print(qd$get.dosing()) # table of dosing records print(qd$get.nobs()) # number of observation (not dosing) records # # BID dosing, 5 days bid <- eventTable("mg", "days") # only dosing bid$add.dosing( dose = 10000, nbr.doses = 2 * 5, dosing.interval = 12, do.sampling = FALSE ) # # Use the copy() method to create a copy (clone) of an existing # event table (simple assignments just create a new reference to # the same event table object (closure)). # bid.ext <- bid$copy() # three-day extension for a 2nd cohort bid.ext$add.dosing( dose = 5000, nbr.doses = 2 * 3, start.time = 120, dosing.interval = 12, do.sampling = FALSE ) # You can also use the Piping operator to create a table qd2 <- eventTable(amount.units = "mg", time.units = "days") %>% add.dosing(dose = 50, nbr.doses = 5, dosing.interval = 1, do.sampling = FALSE) %>% add.sampling(seq(from = 0, to = 1, by = 1 / 24)) %>% add.sampling(seq(from = 1, to = 5, by = 12 / 24)) # print(qd2$get.dosing()) # table of dosing records print(qd2$get.nobs()) # number of observation (not dosing) records # Note that piping with %>% will update the original table. qd3 <- qd2 %>% add.sampling(seq(from = 5, to = 10, by = 6 / 24)) print(qd2$get.nobs()) print(qd3$get.nobs())

See Also

et()

Author(s)

Matthew Fidler, Melissa Hallow and Wenping Wang