`r paste0(ctl_path(params$m), ': VPC')`

## LOAD PACKAGES HERE
library(NMproject)
library(dplyr)
library(ggplot2)

## DO NOT MODIFY THE REST OF THIS BLOCK (unless you know what you're doing)
library(knitr)
library(rprojroot)
opts_knit$set(root.dir = find_root(
  has_file(".Rprofile") | 
    is_rstudio_project | 
    is_r_package | 
    is_git_root
))
opts_chunk$set(echo = FALSE)
opts_chunk$set(message = FALSE)
if(!is.null(knitr::opts_knit$get('rmarkdown.pandoc.to'))){
  .m <- params$m  
}

parameters

Any knitr parameters will be displayed here:

print(params)

model object

wait_finish(.m)

VPC

library(vpc)

## prep an obs and a sim for vpc function

obs <- parent_run(.m) %>%
  output_table_first() %>% 
  filter(INNONMEM)

## manipulate these to get TPERIOD
obs <- obs %>% 
  group_by(ID) %>%
  mutate(DPERIOD = cumsum(!is.na(AMT))) %>%
  group_by(ID, DPERIOD) %>%
  mutate(TPERIOD = TIME - min(TIME)) %>%
  ungroup()

obs <- obs[!is.na(obs$DV), ]

sim <- .m %>%
  output_table_first() %>% 
  filter(INNONMEM)

sim <- sim[!is.na(sim$DV), ]

sim$DPERIOD <- rep(obs$DPERIOD, length = nrow(sim))
sim$TPERIOD <- rep(obs$TPERIOD, length = nrow(sim))
sim$DV <- sim$DV_OUT  ## needed because output_table puts DV in DV_OUT
vpc::vpc(
  sim = sim,
  obs = obs,
  obs_cols = list(idv = "TPERIOD"),
  sim_cols = list(idv = "TPERIOD")
)

prediction corrected

vpc::vpc(
  sim = sim,
  obs = obs,
  obs_cols = list(idv = "TPERIOD"),
  sim_cols = list(idv = "TPERIOD"),
  pred_corr = TRUE
)

stratified by bodyweight

sim$WT_c = Hmisc::cut2(sim$WT, g = 2)
obs$WT_c = Hmisc::cut2(obs$WT, g = 2)

vpc::vpc(
  sim = sim,
  obs = obs,
  obs_cols = list(idv = "TPERIOD"),
  sim_cols = list(idv = "TPERIOD"),
  stratify = "WT_c"
)

Appendix

control file

.m %>% text() %>% dplyr::first()


Try the NMproject package in your browser

Any scripts or data that you put into this service are public.

NMproject documentation built on Sept. 30, 2022, 1:06 a.m.