Nothing
#' Generate an example concentration data set for testing
#'
#' @param nsub The number of subjects to generate
#' @param ntreat The number of treatments per subject
#' @param time.points The times points to generate for each subject (a
#' vector)
#' @param nstudies The number of studies (\code{NA} gives one study
#' without a study column)
#' @param nanalytes The number of analytes to generate (\code{NA}
#' gives one analyte without an analyte column)
#' @param resid The normally distributed random error
#' @return A data frame with columns for study, treatment, subject,
#' time, analyte, and concentration.
generate.conc <- function(nsub, ntreat, time.points, nstudies=NA, nanalytes=NA, resid=0.1) {
one.cmt.oral <- function(time, dose, v, ka, kel, f=1)
f*dose*ka/(v*(ka-kel))*(exp(-kel*time) - exp(-ka*time))
# one.cmt.iv <- function(time, dose, v, kel)
# dose/v*exp(-kel*time)
set.seed(5)
ret <- data.frame()
nanalytes.include <- !is.na(nanalytes)
if (is.na(nanalytes))
nanalytes <- 1
nstudies.include <- !is.na(nstudies)
if (is.na(nstudies))
nstudies <- 1
for (i in seq_len(ntreat))
for (j in seq_len(nsub))
for (k in seq_len(nanalytes))
for (m in seq_len(nstudies)) {
ret <- rbind(
ret,
data.frame(
study=paste("Study", m),
treatment=paste("Trt", i),
ID=j,
time=time.points,
conc=exp(
rnorm(length(time.points), mean=0, sd=resid))*
one.cmt.oral(time.points,
dose=i,
v=1,
ka=1,
kel=0.05),
analyte=paste("Analyte", k),
stringsAsFactors=FALSE
)
)
}
if (!nanalytes.include)
ret$analyte <- NULL
if (!nstudies.include)
ret$study <- NULL
ret
}
#' Generate dose information to go with concentration data.
#'
#' @param concdata Concentration-time data generated by
#' \code{\link{generate.conc}}
#' @return A data frame of dosing data
generate.dose <- function(concdata) {
ret <-
unique(
concdata[
,
setdiff(names(concdata), c("time", "conc", "analyte"))
]
)
ret$dose <- as.numeric(factor(ret$treatment))
ret$time <- 0
ret
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.