# concentrations
conc_data <- data.frame(mod_id = rep(1:3,each=4),
mod_visit = rep(c(2,1,1),each=4),
mod_id_visit = as.numeric(paste(rep(1:3,each=4),
rep(c(2,1,1),each=4), sep=".")),
samp = rep(1:4,times=3),
drug_calc_conc=15*exp(-1*rep(1:4,times=3))+rnorm(12,0,0.1))
# sample times
build_date <- function(x) format(seq(x, length.out=4, by="1 hour"), "%Y-%m-%d %H:%M")
dates <- unlist(lapply(rep(Sys.time(),3), build_date))
samp_data <- data.frame(mod_id = rep(1:3,each=4),
mod_visit = rep(c(2,1,1),each=4),
mod_id_visit = as.numeric(paste(rep(1:3,each=4),
rep(c(2,1,1),each=4), sep=".")),
samp = rep(1:4,times=3),
Sample.Collection.Date.and.Time = dates)
run_DrugLevel(
conc.path = conc_data,
conc.columns = list(
id = 'mod_id', idvisit = 'mod_id_visit', samplinkid = 'mod_id_event', conc = 'conc.level'
),
conc.select = c('mod_id','mod_id_visit','samp','drug_calc_conc'),
conc.rename = c(drug_calc_conc= 'conc.level', samp='event'),
conc.mod.list = list(mod_id_event = expression(paste(mod_id_visit, event, sep = "_"))),
samp.path = samp_data,
samp.columns = list(conclinkid = 'mod_id_event', datetime = 'Sample.Collection.Date.and.Time'),
samp.mod.list = list(mod_id_event = expression(paste(mod_id_visit, samp, sep = "_"))),
drugname = 'drugnm',
LLOQ = 0.05
)
# minimal example with data in required format
conc_data <- conc_data[,c('mod_id','mod_id_visit','samp','drug_calc_conc')]
conc_data[,'mod_id_event'] <- paste(conc_data[,'mod_id_visit'], conc_data[,'samp'], sep = "_")
names(conc_data)[3:4] <- c('event','conc.level')
samp_data[,'mod_id_event'] <- paste(samp_data[,'mod_id_visit'], samp_data[,'samp'], sep = "_")
conc_samp_link <- match(conc_data[,'mod_id_event'], samp_data[,'mod_id_event'])
conc_date <- samp_data[conc_samp_link, 'Sample.Collection.Date.and.Time']
conc_data[,'date.time'] <- as.POSIXct(conc_date)
run_DrugLevel(conc_data, conc.columns = list(
id = 'mod_id', idvisit = 'mod_id_visit', datetime = 'date.time', conc = 'conc.level'
))
Run the code above in your browser using DataLab