% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/et.R
\name{add.dosing}
\alias{add.dosing}
\title{Add dosing to eventTable}
\usage{
add.dosing(
  eventTable,
  dose,
  nbr.doses = 1L,
  dosing.interval = 24,
  dosing.to = 1L,
  rate = NULL,
  amount.units = NA_character_,
  start.time = 0,
  do.sampling = FALSE,
  time.units = NA_character_,
  ...
)
}
\arguments{
\item{eventTable}{eventTable object; When accessed from object it would be \verb{eventTable$}}

\item{dose}{numeric scalar, dose amount in \code{amount.units};}

\item{nbr.doses}{integer, number of doses;}

\item{dosing.interval}{required numeric scalar, time between doses
in \code{time.units}, defaults to 24 of
\code{time.units="hours"};}

\item{dosing.to}{integer, compartment the dose goes into (first
compartment by default);}

\item{rate}{for infusions, the rate of infusion (default is
\code{NULL}, for bolus dosing;}

\item{amount.units}{optional string indicating the dosing units.
Defaults to \code{NA} to indicate as per the original
\code{EventTable} definition.}

\item{start.time}{required dosing start time;}

\item{do.sampling}{logical, should observation sampling records be
added at the dosing times? Defaults to \code{FALSE}.}

\item{time.units}{optional string indicating the time units.
Defaults to \code{"hours"} to indicate as per the original
\code{EventTable} definition.}

\item{...}{Other parameters passed to \code{\link[=et]{et()}}.}
}
\value{
eventTable with updated dosing (note the event table will
be updated anyway)
}
\description{
This adds a dosing event to the event table.  This is provided for
piping syntax through magrittr.  It can also be accessed by \code{eventTable$add.dosing(...)}
}
\examples{

\dontrun{

library(rxode2)
library(units)

# Model from rxode2 tutorial
# Using a nlmixr2 style function

mod1 <-function(){
  ini({
    KA <- 2.94E-01
    CL <- 1.86E+01
    V2 <- 4.02E+01
    Q <- 1.05E+01
    V3 <- 2.97E+02
    Kin <- 1
    Kout <- 1
    EC50 <- 200
  })
 model({
    C2 <- centr/V2
    C3 <- peri/V3
    d/dt(depot) <- -KA*depot
    d/dt(centr) <- KA*depot - CL*C2 - Q*C2 + Q*C3
    d/dt(peri)  <-                    Q*C2 - Q*C3
    d/dt(eff)   <- Kin - Kout*(1-C2/(EC50+C2))*eff
 })
}

## These are making the more complex regimens of the rxode2 tutorial

## bid for 5 days
bid <- et(timeUnits="hr") |>
       et(amt=10000,ii=12,until=set_units(5, "days"))

## qd for 5 days
qd <- et(timeUnits="hr") |>
      et(amt=20000,ii=24,until=set_units(5, "days"))

## bid for 5 days followed by qd for 5 days

et <- seq(bid,qd) |>
      et(seq(0,11*24,length.out=100))

bidQd <- rxSolve(mod1, et)

plot(bidQd, C2)


## Now Infusion for 5 days followed by oral for 5 days

##  note you can dose to a named compartment instead of using the compartment number
infusion <- et(timeUnits = "hr") |>
      et(amt=10000, rate=5000, ii=24, until=set_units(5, "days"), cmt="centr")


qd <- et(timeUnits = "hr") |>
  et(amt=10000, ii=24, until=set_units(5, "days"), cmt="depot")

et <- seq(infusion,qd)

infusionQd <- rxSolve(mod1, et)

plot(infusionQd, C2)

## 2wk-on, 1wk-off

qd <- et(timeUnits = "hr") |>
      et(amt=10000, ii=24, until=set_units(2, "weeks"), cmt="depot")

et <- seq(qd, set_units(1,"weeks"), qd) |>
     add.sampling(set_units(seq(0, 5.5,by=0.005),weeks))

wkOnOff <- rxSolve(mod1, et)

plot(wkOnOff, C2)

## You can also repeat the cycle easily with the rep function

qd <-et(timeUnits = "hr") |>
     et(amt=10000, ii=24, until=set_units(2, "weeks"), cmt="depot")

et <- etRep(qd, times=4, wait=set_units(1,"weeks")) |>
      add.sampling(set_units(seq(0, 12.5,by=0.005),weeks))

repCycle4 <- rxSolve(mod1, et)

plot(repCycle4, C2)

}
}
\references{
Wang W, Hallow K, James D (2015). "A Tutorial on rxode2: Simulating
Differential Equation Pharmacometric Models in R." CPT:
Pharmacometrics and Systems Pharmacology, 5(1), 3-10. ISSN 2163-8306
}
\seealso{
\code{\link{eventTable}}, \code{\link{add.sampling}},
\code{\link{add.dosing}}, \code{\link{et}},
\code{\link{etRep}}, \code{\link{etRbind}},
\code{\link{rxode2}}
}
\author{
Matthew L. Fidler

Matthew L Fidler, Wenping Wang
}
