diff options
| -rw-r--r-- | NAMESPACE | 2 | ||||
| -rw-r--r-- | R/nlme.mmkin.R | 3 | ||||
| -rw-r--r-- | R/plot.nlme.mmkin.R | 216 | ||||
| -rw-r--r-- | R/plot_mixed.R (renamed from R/plot.saem.mmkin.R) | 108 | ||||
| -rw-r--r-- | docs/dev/pkgdown.yml | 2 | ||||
| -rw-r--r-- | docs/dev/reference/Rplot002.png | bin | 56909 -> 57363 bytes | |||
| -rw-r--r-- | docs/dev/reference/Rplot003.png | bin | 52903 -> 56909 bytes | |||
| -rw-r--r-- | docs/dev/reference/dot-plot_mixed.html | 203 | ||||
| -rw-r--r-- | docs/dev/reference/get_deg_func.html | 10 | ||||
| -rw-r--r-- | docs/dev/reference/index.html | 10 | ||||
| -rw-r--r-- | docs/dev/reference/plot_mixed-1.png | bin | 0 -> 86076 bytes | |||
| -rw-r--r-- | docs/dev/reference/plot_mixed-2.png | bin | 0 -> 164488 bytes | |||
| -rw-r--r-- | docs/dev/reference/plot_mixed-3.png | bin | 0 -> 164014 bytes | |||
| -rw-r--r-- | docs/dev/reference/plot_mixed.html | 336 | ||||
| -rw-r--r-- | docs/dev/reference/reexports.html | 14 | ||||
| -rw-r--r-- | docs/dev/sitemap.xml | 5 | ||||
| -rw-r--r-- | man/plot.saem.mmkin.Rd | 94 | ||||
| -rw-r--r-- | man/plot_mixed.Rd (renamed from man/plot.nlme.mmkin.Rd) | 45 | ||||
| -rw-r--r-- | man/reexports.Rd | 5 | 
19 files changed, 694 insertions, 359 deletions
| @@ -74,6 +74,7 @@ export(mkinresplot)  export(mkinsub)  export(mmkin)  export(nafta) +export(nlme)  export(nlme_data)  export(nlme_function)  export(parms) @@ -99,7 +100,6 @@ importFrom(parallel,mclapply)  importFrom(parallel,parLapply)  importFrom(pkgbuild,has_compiler)  importFrom(purrr,map_dfr) -importFrom(saemix,psi)  importFrom(stats,AIC)  importFrom(stats,BIC)  importFrom(stats,aggregate) diff --git a/R/nlme.mmkin.R b/R/nlme.mmkin.R index ca849b85..695c63e9 100644 --- a/R/nlme.mmkin.R +++ b/R/nlme.mmkin.R @@ -6,6 +6,9 @@  # following environment will be in the mkin namespace.  .nlme_env <- new.env(parent = emptyenv()) +#' @export +nlme::nlme +  #' Retrieve a degradation function from the mmkin namespace  #'  #' @importFrom utils getFromNamespace diff --git a/R/plot.nlme.mmkin.R b/R/plot.nlme.mmkin.R deleted file mode 100644 index 4228b18a..00000000 --- a/R/plot.nlme.mmkin.R +++ /dev/null @@ -1,216 +0,0 @@ -if(getRversion() >= '2.15.1') utils::globalVariables("ds") - -#' Plot a fitted nonlinear mixed model obtained via an mmkin row object -#' -#' @param x An object of class \code{\link{nlme.mmkin}} -#' @param i A numeric index to select datasets for which to plot the nlme fit, -#'   in case plots get too large -#' @inheritParams plot.mkinfit -#' @param standardized Should the residuals be standardized? Only takes effect if -#'   `resplot = "time"`. -#' @param rel.height.legend The relative height of the legend shown on top -#' @param rel.height.bottom The relative height of the bottom plot row -#' @param ymax Vector of maximum y axis values -#' @param ncol.legend Number of columns to use in the legend -#' @param nrow.legend Number of rows to use in the legend -#' @param resplot Should the residuals plotted against time or against -#'   predicted values? -#' @param col_ds Colors used for plotting the observed data and the -#'   corresponding model prediction lines for the different datasets. -#' @param pch_ds Symbols to be used for plotting the data. -#' @param lty_ds Line types to be used for the model predictions. -#' @importFrom stats coefficients -#' @return The function is called for its side effect. -#' @author Johannes Ranke -#' @examples -#' ds <- lapply(experimental_data_for_UBA_2019[6:10], -#'  function(x) x$data[c("name", "time", "value")]) -#' names(ds) <- paste0("ds ", 6:10) -#' dfop_sfo <- mkinmod(parent = mkinsub("DFOP", "A1"), -#'   A1 = mkinsub("SFO"), quiet = TRUE) -#' \dontrun{ -#' f <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE) -#' plot(f[, 3:4], standardized = TRUE) -#' -#' library(nlme) -#' # For this fit we need to increase pnlsMaxiter, and we increase the -#' # tolerance in order to speed up the fit for this example evaluation -#' f_nlme <- nlme(f, control = list(pnlsMaxIter = 120, tolerance = 1e-3)) -#' plot(f_nlme) -#' } -#' @export -plot.nlme.mmkin <- function(x, i = 1:ncol(x$mmkin), -  obs_vars = names(x$mkinmod$map), -  standardized = TRUE, -  xlab = "Time", -  xlim = range(x$data$time), -  resplot = c("predicted", "time"), -  ymax = "auto", maxabs = "auto", -  ncol.legend = ifelse(length(i) <= 3, length(i) + 1, ifelse(length(i) <= 8, 3, 4)), -  nrow.legend = ceiling((length(i) + 1) / ncol.legend), -  rel.height.legend = 0.03 + 0.08 * nrow.legend, -  rel.height.bottom = 1.1, -  pch_ds = 1:length(i), -  col_ds = pch_ds + 1, -  lty_ds = col_ds, -  frame = TRUE) -{ - -  oldpar <- par(no.readonly = TRUE) - -  fit_1 = x$mmkin[[1]] -  ds_names <- colnames(x$mmkin) - -  degparms_optim <- coefficients(x) -  degparms_optim_names <- names(degparms_optim) -  degparms_fixed <- fit_1$fixed$value -  names(degparms_fixed) <- rownames(fit_1$fixed) -  degparms_all <- cbind(as.matrix(degparms_optim), -    matrix(rep(degparms_fixed, nrow(degparms_optim)), -      ncol = length(degparms_fixed), -      nrow = nrow(degparms_optim), byrow = TRUE)) -  degparms_all_names <- c(degparms_optim_names, names(degparms_fixed)) -  colnames(degparms_all) <- degparms_all_names - -  odeini_names <- grep("_0$", degparms_all_names, value = TRUE) -  odeparms_names <- setdiff(degparms_all_names, odeini_names) - -  residual_type = ifelse(standardized, "pearson", "response") - -  observed <- cbind(x$data, -    residual = residuals(x, type = residual_type)) - -  n_plot_rows = length(obs_vars) -  n_plots = n_plot_rows * 2 - -  # Set relative plot heights, so the first plot row is the norm -  rel.heights <- if (n_plot_rows > 1) { -    c(rel.height.legend, c(rep(1, n_plot_rows - 1), rel.height.bottom)) -  } else { -    c(rel.height.legend, 1) -  } - -  layout_matrix = matrix(c(1, 1, 2:(n_plots + 1)), -    n_plot_rows + 1, 2, byrow = TRUE) -  layout(layout_matrix, heights = rel.heights) - -  par(mar = c(0.1, 2.1, 0.6, 2.1)) - -  plot(0, type = "n", axes = FALSE, ann = FALSE) -  legend("center", bty = "n", ncol = ncol.legend, -    legend = c("Population", ds_names[i]), -    lty = c(1, lty_ds), lwd = c(2, rep(1, length(i))), -    col = c(1, col_ds), -    pch = c(NA, pch_ds)) - - -  solution_type = fit_1$solution_type - -  outtimes <- sort(unique(c(x$data$time, -    seq(xlim[1], xlim[2], length.out = 50)))) - -  pred_ds <- purrr::map_dfr(i, function(ds_i)   { -    odeparms_trans <- degparms_all[ds_i, odeparms_names] -    names(odeparms_trans) <- odeparms_names # needed if only one odeparm -    odeparms <- backtransform_odeparms(odeparms_trans, -      x$mkinmod, -      transform_rates = fit_1$transform_rates, -      transform_fractions = fit_1$transform_fractions) - -    odeini <- degparms_all[ds_i, odeini_names] -    names(odeini) <- gsub("_0", "", odeini_names) - -    out <- mkinpredict(x$mkinmod, odeparms, odeini, -      outtimes, solution_type = solution_type, -      atol = fit_1$atol, rtol = fit_1$rtol) -    return(cbind(as.data.frame(out), ds = ds_names[ds_i])) -  }) - -  degparms_all_pop <- c(fixef(x), degparms_fixed) - -  odeparms_pop_trans <- degparms_all_pop[odeparms_names] -  odeparms_pop <- backtransform_odeparms(odeparms_pop_trans, -    x$mkinmod, -    transform_rates = fit_1$transform_rates, -    transform_fractions = fit_1$transform_fractions) - -  odeini_pop <- degparms_all_pop[odeini_names] -  names(odeini_pop) <- gsub("_0", "", odeini_names) - -  pred_pop <- as.data.frame( -    mkinpredict(x$mkinmod, odeparms_pop, odeini_pop, -      outtimes, solution_type = solution_type, -      atol = fit_1$atol, rtol = fit_1$rtol)) - -  resplot <- match.arg(resplot) - -  # Loop plot rows -  for (plot_row in 1:n_plot_rows) { - -    obs_var <- obs_vars[plot_row] -    observed_row <- subset(observed, name == obs_var) - -    # Set ylim to sensible default, or use ymax -    if (identical(ymax, "auto")) { -      ylim_row = c(0, -        max(c(observed_row$value, pred_ds[[obs_var]]), na.rm = TRUE)) -    } else { -      ylim_row = c(0, ymax[plot_row]) -    } - -    # Margins for bottom row of plots when we have more than one row -    # This is the only row that needs to show the x axis legend -    if (plot_row == n_plot_rows) { -      par(mar = c(5.1, 4.1, 2.1, 2.1)) -    } else { -      par(mar = c(3.0, 4.1, 2.1, 2.1)) -    } - -    plot(pred_pop$time, pred_pop[[obs_var]], -      type = "l", lwd = 2, -      xlim = xlim, ylim = ylim_row, -      xlab = xlab, ylab = obs_var, frame = frame) - -    for (ds_i in seq_along(i)) { -      points(subset(observed_row, ds == ds_names[ds_i], c("time", "value")), -        col = col_ds[ds_i], pch = pch_ds[ds_i]) -      lines(subset(pred_ds, ds == ds_names[ds_i], c("time", obs_var)), -        col = col_ds[ds_i], lty = lty_ds[ds_i]) -    } - -    if (identical(maxabs, "auto")) { -      maxabs = max(abs(observed_row$residual), na.rm = TRUE) -    } - -    if (identical(resplot, "time")) { -      plot(0, type = "n", xlim = xlim, xlab = "Time", -        ylim = c(-1.2 * maxabs, 1.2 * maxabs), -        ylab = if (standardized) "Standardized residual" else "Residual") - -      abline(h = 0, lty = 2) - -      for (ds_i in seq_along(i)) { -        points(subset(observed_row, ds == ds_names[ds_i], c("time", "residual")), -          col = col_ds[ds_i], pch = pch_ds[ds_i]) -      } -    } - -    if (identical(resplot, "predicted")) { -      plot(0, type = "n", -        xlim = c(0, max(pred_ds[[obs_var]])), -        xlab = "Predicted", -        ylim = c(-1.2 * maxabs, 1.2 * maxabs), -        ylab = if (standardized) "Standardized residual" else "Residual") - -      abline(h = 0, lty = 2) - -      for (ds_i in seq_along(i)) { -        observed_row_ds <- merge( -          subset(observed_row, ds == ds_names[ds_i], c("time", "residual")), -          subset(pred_ds, ds == ds_names[ds_i], c("time", obs_var))) -        points(observed_row_ds[c(3, 2)], -          col = col_ds[ds_i], pch = pch_ds[ds_i]) -      } -    } -  } -} diff --git a/R/plot.saem.mmkin.R b/R/plot_mixed.R index ce43fdb6..68404de4 100644 --- a/R/plot.saem.mmkin.R +++ b/R/plot_mixed.R @@ -1,9 +1,10 @@  if(getRversion() >= '2.15.1') utils::globalVariables("ds") -#' Plot an saem fitted nonlinear mixed model obtained via an mmkin row object +#' Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object  #' -#' @param x An object of class \code{\link{saem.mmkin}} -#' @param i A numeric index to select datasets for which to plot the saem fit, +#' @name plot_mixed +#' @param x An object of class [saem.mmkin] or [nlme.mmkin] +#' @param i A numeric index to select datasets for which to plot the individual predictions,  #'   in case plots get too large  #' @inheritParams plot.mkinfit  #' @param standardized Should the residuals be standardized? Only takes effect if @@ -19,8 +20,8 @@ if(getRversion() >= '2.15.1') utils::globalVariables("ds")  #'   corresponding model prediction lines for the different datasets.  #' @param pch_ds Symbols to be used for plotting the data.  #' @param lty_ds Line types to be used for the model predictions. -#' @importFrom saemix psi -#' @return The function is called for its side effect. +#' @importFrom stats coefficients +#' @return The functions are called for their side effect.  #' @author Johannes Ranke  #' @examples  #' ds <- lapply(experimental_data_for_UBA_2019[6:10], @@ -32,9 +33,16 @@ if(getRversion() >= '2.15.1') utils::globalVariables("ds")  #' f <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE)  #' plot(f[, 3:4], standardized = TRUE)  #' +#' library(nlme) +#' # For this fit we need to increase pnlsMaxiter, and we increase the +#' # tolerance in order to speed up the fit for this example evaluation +#' f_nlme <- nlme(f, control = list(pnlsMaxIter = 120, tolerance = 1e-3)) +#' plot(f_nlme) +#'  #' f_saem <- saem(f)  #' plot(f_saem)  #' } +#' @rdname plot_mixed  #' @export  plot.saem.mmkin <- function(x, i = 1:ncol(x$mmkin),    obs_vars = names(x$mkinmod$map), @@ -52,33 +60,106 @@ plot.saem.mmkin <- function(x, i = 1:ncol(x$mmkin),    lty_ds = col_ds,    frame = TRUE, ...)  { - -  oldpar <- par(no.readonly = TRUE) -    fit_1 <- x$mmkin[[1]]    ds_names <- colnames(x$mmkin) -  degparms_optim <- psi(x$so) +  degparms_optim <- saemix::psi(x$so)    rownames(degparms_optim) <- ds_names    degparms_optim_names <- setdiff(names(fit_1$par), names(fit_1$errparms))    colnames(degparms_optim) <- degparms_optim_names +  residual_type = ifelse(standardized, "iwres", "ires") + +  residuals <- x$so@results@predictions[[residual_type]] + +  degparms_pop <- x$so@results@fixed.effects +  names(degparms_pop) <- degparms_optim_names + +  .plot_mixed(x, i, +    degparms_optim, degparms_pop, residuals, +    obs_vars, standardized, xlab, xlim, +    resplot, ymax, maxabs, +    ncol.legend, nrow.legend, +    rel.height.legend, rel.height.bottom, +    pch_ds, col_ds, lty_ds, frame, ...) +} + +#' @rdname plot_mixed +#' @export +plot.nlme.mmkin <- function(x, i = 1:ncol(x$mmkin), +  obs_vars = names(x$mkinmod$map), +  standardized = TRUE, +  xlab = "Time", +  xlim = range(x$data$time), +  resplot = c("predicted", "time"), +  ymax = "auto", maxabs = "auto", +  ncol.legend = ifelse(length(i) <= 3, length(i) + 1, ifelse(length(i) <= 8, 3, 4)), +  nrow.legend = ceiling((length(i) + 1) / ncol.legend), +  rel.height.legend = 0.03 + 0.08 * nrow.legend, +  rel.height.bottom = 1.1, +  pch_ds = 1:length(i), +  col_ds = pch_ds + 1, +  lty_ds = col_ds, +  frame = TRUE, ...) +{ +  degparms_optim <- coefficients(x) +  degparms_pop <- nlme::fixef(x) + +  residuals <- residuals(x, +    type = ifelse(standardized, "pearson", "response")) + +  .plot_mixed(x, i, +    degparms_optim, degparms_pop, residuals, +    obs_vars, standardized, xlab, xlim, +    resplot, ymax, maxabs, +    ncol.legend, nrow.legend, +    rel.height.legend, rel.height.bottom, +    pch_ds, col_ds, lty_ds, frame, ...) +} + +.plot_mixed <- function(x, i = 1:ncol(x$mmkin), +  degparms_optim, +  degparms_pop, +  residuals, +  obs_vars = names(x$mkinmod$map), +  standardized = TRUE, +  xlab = "Time", +  xlim = range(x$data$time), +  resplot = c("predicted", "time"), +  ymax = "auto", maxabs = "auto", +  ncol.legend = ifelse(length(i) <= 3, length(i) + 1, ifelse(length(i) <= 8, 3, 4)), +  nrow.legend = ceiling((length(i) + 1) / ncol.legend), +  rel.height.legend = 0.03 + 0.08 * nrow.legend, +  rel.height.bottom = 1.1, +  pch_ds = 1:length(i), +  col_ds = pch_ds + 1, +  lty_ds = col_ds, +  frame = TRUE, ...) +{ + +  oldpar <- par(no.readonly = TRUE) + +  fit_1 <- x$mmkin[[1]] +  ds_names <- colnames(x$mmkin) +    degparms_fixed <- fit_1$fixed$value    names(degparms_fixed) <- rownames(fit_1$fixed)    degparms_all <- cbind(as.matrix(degparms_optim),      matrix(rep(degparms_fixed, nrow(degparms_optim)),        ncol = length(degparms_fixed),        nrow = nrow(degparms_optim), byrow = TRUE)) -  degparms_all_names <- c(degparms_optim_names, names(degparms_fixed)) +  degparms_all_names <- c(names(degparms_optim), names(degparms_fixed))    colnames(degparms_all) <- degparms_all_names +  degparms_all_pop <- c(degparms_pop, degparms_fixed) +    odeini_names <- grep("_0$", degparms_all_names, value = TRUE)    odeparms_names <- setdiff(degparms_all_names, odeini_names)    residual_type = ifelse(standardized, "iwres", "ires")    observed <- cbind(x$data, -    residual = x$so@results@predictions[[residual_type]]) +    residual = residuals)    n_plot_rows = length(obs_vars)    n_plots = n_plot_rows * 2 @@ -103,7 +184,6 @@ plot.saem.mmkin <- function(x, i = 1:ncol(x$mmkin),      col = c(1, col_ds),      pch = c(NA, pch_ds)) -    solution_type = fit_1$solution_type    outtimes <- sort(unique(c(x$data$time, @@ -126,10 +206,6 @@ plot.saem.mmkin <- function(x, i = 1:ncol(x$mmkin),      return(cbind(as.data.frame(out), ds = ds_names[ds_i]))    }) -  degparms_pop <- x$so@results@fixed.effects -  names(degparms_pop) <- degparms_optim_names -  degparms_all_pop <- c(degparms_pop, degparms_fixed) -    odeparms_pop_trans <- degparms_all_pop[odeparms_names]    odeparms_pop <- backtransform_odeparms(odeparms_pop_trans,      x$mkinmod, diff --git a/docs/dev/pkgdown.yml b/docs/dev/pkgdown.yml index e14af5e0..4b2b76f7 100644 --- a/docs/dev/pkgdown.yml +++ b/docs/dev/pkgdown.yml @@ -10,7 +10,7 @@ articles:    web_only/NAFTA_examples: NAFTA_examples.html    web_only/benchmarks: benchmarks.html    web_only/compiled_models: compiled_models.html -last_built: 2020-11-09T13:23Z +last_built: 2020-11-09T15:29Z  urls:    reference: https://pkgdown.jrwb.de/mkin/reference    article: https://pkgdown.jrwb.de/mkin/articles diff --git a/docs/dev/reference/Rplot002.png b/docs/dev/reference/Rplot002.pngBinary files differ index cd2014eb..8ada7133 100644 --- a/docs/dev/reference/Rplot002.png +++ b/docs/dev/reference/Rplot002.png diff --git a/docs/dev/reference/Rplot003.png b/docs/dev/reference/Rplot003.pngBinary files differ index 7514f1a4..cd2014eb 100644 --- a/docs/dev/reference/Rplot003.png +++ b/docs/dev/reference/Rplot003.png diff --git a/docs/dev/reference/dot-plot_mixed.html b/docs/dev/reference/dot-plot_mixed.html new file mode 100644 index 00000000..e359c5ea --- /dev/null +++ b/docs/dev/reference/dot-plot_mixed.html @@ -0,0 +1,203 @@ +<!-- Generated by pkgdown: do not edit by hand --> +<!DOCTYPE html> +<html lang="en"> +  <head> +  <meta charset="utf-8"> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<title>Not intended to be called directly by the user — .plot_mixed • mkin</title> + + +<!-- jquery --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> +<!-- Bootstrap --> + +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous" /> + +<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script> + +<!-- bootstrap-toc --> +<link rel="stylesheet" href="../bootstrap-toc.css"> +<script src="../bootstrap-toc.js"></script> + +<!-- Font Awesome icons --> +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous" /> +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous" /> + +<!-- clipboard.js --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script> + +<!-- headroom.js --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script> + +<!-- pkgdown --> +<link href="../pkgdown.css" rel="stylesheet"> +<script src="../pkgdown.js"></script> + + + + +<meta property="og:title" content="Not intended to be called directly by the user — .plot_mixed" /> +<meta property="og:description" content="Not intended to be called directly by the user" /> + + +<meta name="robots" content="noindex"> + +<!-- mathjax --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script> + +<!--[if lt IE 9]> +<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> +<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> +<![endif]--> + + + +  </head> + +  <body data-spy="scroll" data-target="#toc"> +    <div class="container template-reference-topic"> +      <header> +      <div class="navbar navbar-default navbar-fixed-top" role="navigation"> +  <div class="container"> +    <div class="navbar-header"> +      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false"> +        <span class="sr-only">Toggle navigation</span> +        <span class="icon-bar"></span> +        <span class="icon-bar"></span> +        <span class="icon-bar"></span> +      </button> +      <span class="navbar-brand"> +        <a class="navbar-link" href="../index.html">mkin</a> +        <span class="version label label-info" data-toggle="tooltip" data-placement="bottom" title="In-development version">0.9.50.4</span> +      </span> +    </div> + +    <div id="navbar" class="navbar-collapse collapse"> +      <ul class="nav navbar-nav"> +        <li> +  <a href="../reference/index.html">Functions and data</a> +</li> +<li class="dropdown"> +  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> +    Articles +      +    <span class="caret"></span> +  </a> +  <ul class="dropdown-menu" role="menu"> +    <li> +      <a href="../articles/mkin.html">Introduction to mkin</a> +    </li> +    <li> +      <a href="../articles/FOCUS_D.html">Example evaluation of FOCUS Example Dataset D</a> +    </li> +    <li> +      <a href="../articles/FOCUS_L.html">Example evaluation of FOCUS Laboratory Data L1 to L3</a> +    </li> +    <li> +      <a href="../articles/web_only/FOCUS_Z.html">Example evaluation of FOCUS Example Dataset Z</a> +    </li> +    <li> +      <a href="../articles/web_only/compiled_models.html">Performance benefit by using compiled model definitions in mkin</a> +    </li> +    <li> +      <a href="../articles/twa.html">Calculation of time weighted average concentrations with mkin</a> +    </li> +    <li> +      <a href="../articles/web_only/NAFTA_examples.html">Example evaluation of NAFTA SOP Attachment examples</a> +    </li> +    <li> +      <a href="../articles/web_only/benchmarks.html">Some benchmark timings</a> +    </li> +  </ul> +</li> +<li> +  <a href="../news/index.html">News</a> +</li> +      </ul> +      <ul class="nav navbar-nav navbar-right"> +        <li> +  <a href="https://github.com/jranke/mkin/"> +    <span class="fab fa fab fa-github fa-lg"></span> +      +  </a> +</li> +      </ul> +       +    </div><!--/.nav-collapse --> +  </div><!--/.container --> +</div><!--/.navbar --> + +       + +      </header> + +<div class="row"> +  <div class="col-md-9 contents"> +    <div class="page-header"> +    <h1>Not intended to be called directly by the user</h1> +    <small class="dont-index">Source: <a href='https://github.com/jranke/mkin/blob/master/R/plot_mixed.R'><code>R/plot_mixed.R</code></a></small> +    <div class="hidden name"><code>dot-plot_mixed.Rd</code></div> +    </div> + +    <div class="ref-description"> +    <p>Not intended to be called directly by the user</p> +    </div> + +    <pre class="usage"><span class='fu'>.plot_mixed</span><span class='op'>(</span> +  <span class='va'>x</span>, +  i <span class='op'>=</span> <span class='fl'>1</span><span class='op'>:</span><span class='fu'><a href='https://rdrr.io/r/base/nrow.html'>ncol</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>mmkin</span><span class='op'>)</span>, +  <span class='va'>degparms_optim</span>, +  <span class='va'>degparms_pop</span>, +  <span class='va'>residuals</span>, +  obs_vars <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/names.html'>names</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>mkinmod</span><span class='op'>$</span><span class='va'>map</span><span class='op'>)</span>, +  standardized <span class='op'>=</span> <span class='cn'>TRUE</span>, +  xlab <span class='op'>=</span> <span class='st'>"Time"</span>, +  xlim <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/range.html'>range</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>data</span><span class='op'>$</span><span class='va'>time</span><span class='op'>)</span>, +  resplot <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"predicted"</span>, <span class='st'>"time"</span><span class='op'>)</span>, +  ymax <span class='op'>=</span> <span class='st'>"auto"</span>, +  maxabs <span class='op'>=</span> <span class='st'>"auto"</span>, +  ncol.legend <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/ifelse.html'>ifelse</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'><=</span> <span class='fl'>3</span>, <span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'>+</span> <span class='fl'>1</span>, <span class='fu'><a href='https://rdrr.io/r/base/ifelse.html'>ifelse</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'><=</span> <span class='fl'>8</span>, <span class='fl'>3</span>, <span class='fl'>4</span><span class='op'>)</span><span class='op'>)</span>, +  nrow.legend <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/Round.html'>ceiling</a></span><span class='op'>(</span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'>+</span> <span class='fl'>1</span><span class='op'>)</span><span class='op'>/</span><span class='va'>ncol.legend</span><span class='op'>)</span>, +  rel.height.legend <span class='op'>=</span> <span class='fl'>0.03</span> <span class='op'>+</span> <span class='fl'>0.08</span> <span class='op'>*</span> <span class='va'>nrow.legend</span>, +  rel.height.bottom <span class='op'>=</span> <span class='fl'>1.1</span>, +  pch_ds <span class='op'>=</span> <span class='fl'>1</span><span class='op'>:</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span>, +  col_ds <span class='op'>=</span> <span class='va'>pch_ds</span> <span class='op'>+</span> <span class='fl'>1</span>, +  lty_ds <span class='op'>=</span> <span class='va'>col_ds</span>, +  frame <span class='op'>=</span> <span class='cn'>TRUE</span>, +  <span class='va'>...</span> +<span class='op'>)</span></pre> + + + +  </div> +  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> +    <nav id="toc" data-toggle="toc" class="sticky-top"> +      <h2 data-toc-skip>Contents</h2> +    </nav> +  </div> +</div> + + +      <footer> +      <div class="copyright"> +  <p>Developed by Johannes Ranke.</p> +</div> + +<div class="pkgdown"> +  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p> +</div> + +      </footer> +   </div> + +   + + +  </body> +</html> + + diff --git a/docs/dev/reference/get_deg_func.html b/docs/dev/reference/get_deg_func.html index ea0676cc..a266bf5f 100644 --- a/docs/dev/reference/get_deg_func.html +++ b/docs/dev/reference/get_deg_func.html @@ -72,7 +72,7 @@        </button>        <span class="navbar-brand">          <a class="navbar-link" href="../index.html">mkin</a> -        <span class="version label label-info" data-toggle="tooltip" data-placement="bottom" title="In-development version">0.9.50.3</span> +        <span class="version label label-info" data-toggle="tooltip" data-placement="bottom" title="In-development version">0.9.50.4</span>        </span>      </div> @@ -120,7 +120,7 @@        </ul>        <ul class="nav navbar-nav navbar-right">          <li> -  <a href="http://github.com/jranke/mkin/"> +  <a href="https://github.com/jranke/mkin/">      <span class="fab fa fab fa-github fa-lg"></span>    </a> @@ -139,7 +139,7 @@    <div class="col-md-9 contents">      <div class="page-header">      <h1>Retrieve a degradation function from the mmkin namespace</h1> -    <small class="dont-index">Source: <a href='http://github.com/jranke/mkin/blob/master/R/nlme.mmkin.R'><code>R/nlme.mmkin.R</code></a></small> +    <small class="dont-index">Source: <a href='https://github.com/jranke/mkin/blob/master/R/nlme.mmkin.R'><code>R/nlme.mmkin.R</code></a></small>      <div class="hidden name"><code>get_deg_func.Rd</code></div>      </div> @@ -147,7 +147,7 @@      <p>Retrieve a degradation function from the mmkin namespace</p>      </div> -    <pre class="usage"><span class='fu'>get_deg_func</span>()</pre> +    <pre class="usage"><span class='fu'>get_deg_func</span><span class='op'>(</span><span class='op'>)</span></pre>      <h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2> @@ -170,7 +170,7 @@ nlme.mmkin</p>  </div>  <div class="pkgdown"> -  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.5.1.</p> +  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>  </div>        </footer> diff --git a/docs/dev/reference/index.html b/docs/dev/reference/index.html index f5621402..5ed2044b 100644 --- a/docs/dev/reference/index.html +++ b/docs/dev/reference/index.html @@ -325,9 +325,9 @@ of an mmkin object</p></td>        </tr><tr>          <td> -          <p><code><a href="plot.nlme.mmkin.html">plot(<i><nlme.mmkin></i>)</a></code> </p> +          <p><code><a href="plot_mixed.html">plot(<i><saem.mmkin></i>)</a></code> <code><a href="plot_mixed.html">plot(<i><nlme.mmkin></i>)</a></code> </p>          </td> -        <td><p>Plot a fitted nonlinear mixed model obtained via an mmkin row object</p></td> +        <td><p>Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object</p></td>        </tr><tr>          <td> @@ -349,12 +349,6 @@ of an mmkin object</p></td>        </tr><tr>          <td> -          <p><code><a href="plot.saem.mmkin.html">plot(<i><saem.mmkin></i>)</a></code> </p> -        </td> -        <td><p>Plot an saem fitted nonlinear mixed model obtained via an mmkin row object</p></td> -      </tr><tr> -         -        <td>            <p><code><a href="nlme.html">nlme_function()</a></code> <code><a href="nlme.html">mean_degparms()</a></code> <code><a href="nlme.html">nlme_data()</a></code> </p>          </td>          <td><p>Helper functions to create nlme models from mmkin row objects</p></td> diff --git a/docs/dev/reference/plot_mixed-1.png b/docs/dev/reference/plot_mixed-1.pngBinary files differ new file mode 100644 index 00000000..5cb33214 --- /dev/null +++ b/docs/dev/reference/plot_mixed-1.png diff --git a/docs/dev/reference/plot_mixed-2.png b/docs/dev/reference/plot_mixed-2.pngBinary files differ new file mode 100644 index 00000000..c0d67204 --- /dev/null +++ b/docs/dev/reference/plot_mixed-2.png diff --git a/docs/dev/reference/plot_mixed-3.png b/docs/dev/reference/plot_mixed-3.pngBinary files differ new file mode 100644 index 00000000..67058e6c --- /dev/null +++ b/docs/dev/reference/plot_mixed-3.png diff --git a/docs/dev/reference/plot_mixed.html b/docs/dev/reference/plot_mixed.html new file mode 100644 index 00000000..b5b3ba49 --- /dev/null +++ b/docs/dev/reference/plot_mixed.html @@ -0,0 +1,336 @@ +<!-- Generated by pkgdown: do not edit by hand --> +<!DOCTYPE html> +<html lang="en"> +  <head> +  <meta charset="utf-8"> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> + +<title>Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object — plot_mixed • mkin</title> + + +<!-- jquery --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> +<!-- Bootstrap --> + +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous" /> + +<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script> + +<!-- bootstrap-toc --> +<link rel="stylesheet" href="../bootstrap-toc.css"> +<script src="../bootstrap-toc.js"></script> + +<!-- Font Awesome icons --> +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous" /> +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous" /> + +<!-- clipboard.js --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script> + +<!-- headroom.js --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script> + +<!-- pkgdown --> +<link href="../pkgdown.css" rel="stylesheet"> +<script src="../pkgdown.js"></script> + + + + +<meta property="og:title" content="Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object — plot_mixed" /> +<meta property="og:description" content="Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object" /> + + +<meta name="robots" content="noindex"> + +<!-- mathjax --> +<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script> +<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script> + +<!--[if lt IE 9]> +<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> +<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> +<![endif]--> + + + +  </head> + +  <body data-spy="scroll" data-target="#toc"> +    <div class="container template-reference-topic"> +      <header> +      <div class="navbar navbar-default navbar-fixed-top" role="navigation"> +  <div class="container"> +    <div class="navbar-header"> +      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false"> +        <span class="sr-only">Toggle navigation</span> +        <span class="icon-bar"></span> +        <span class="icon-bar"></span> +        <span class="icon-bar"></span> +      </button> +      <span class="navbar-brand"> +        <a class="navbar-link" href="../index.html">mkin</a> +        <span class="version label label-info" data-toggle="tooltip" data-placement="bottom" title="In-development version">0.9.50.4</span> +      </span> +    </div> + +    <div id="navbar" class="navbar-collapse collapse"> +      <ul class="nav navbar-nav"> +        <li> +  <a href="../reference/index.html">Functions and data</a> +</li> +<li class="dropdown"> +  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> +    Articles +      +    <span class="caret"></span> +  </a> +  <ul class="dropdown-menu" role="menu"> +    <li> +      <a href="../articles/mkin.html">Introduction to mkin</a> +    </li> +    <li> +      <a href="../articles/FOCUS_D.html">Example evaluation of FOCUS Example Dataset D</a> +    </li> +    <li> +      <a href="../articles/FOCUS_L.html">Example evaluation of FOCUS Laboratory Data L1 to L3</a> +    </li> +    <li> +      <a href="../articles/web_only/FOCUS_Z.html">Example evaluation of FOCUS Example Dataset Z</a> +    </li> +    <li> +      <a href="../articles/web_only/compiled_models.html">Performance benefit by using compiled model definitions in mkin</a> +    </li> +    <li> +      <a href="../articles/twa.html">Calculation of time weighted average concentrations with mkin</a> +    </li> +    <li> +      <a href="../articles/web_only/NAFTA_examples.html">Example evaluation of NAFTA SOP Attachment examples</a> +    </li> +    <li> +      <a href="../articles/web_only/benchmarks.html">Some benchmark timings</a> +    </li> +  </ul> +</li> +<li> +  <a href="../news/index.html">News</a> +</li> +      </ul> +      <ul class="nav navbar-nav navbar-right"> +        <li> +  <a href="https://github.com/jranke/mkin/"> +    <span class="fab fa fab fa-github fa-lg"></span> +      +  </a> +</li> +      </ul> +       +    </div><!--/.nav-collapse --> +  </div><!--/.container --> +</div><!--/.navbar --> + +       + +      </header> + +<div class="row"> +  <div class="col-md-9 contents"> +    <div class="page-header"> +    <h1>Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object</h1> +    <small class="dont-index">Source: <a href='https://github.com/jranke/mkin/blob/master/R/plot_mixed.R'><code>R/plot_mixed.R</code></a></small> +    <div class="hidden name"><code>plot_mixed.Rd</code></div> +    </div> + +    <div class="ref-description"> +    <p>Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object</p> +    </div> + +    <pre class="usage"><span class='co'># S3 method for saem.mmkin</span> +<span class='fu'><a href='https://rdrr.io/r/graphics/plot.default.html'>plot</a></span><span class='op'>(</span> +  <span class='va'>x</span>, +  i <span class='op'>=</span> <span class='fl'>1</span><span class='op'>:</span><span class='fu'><a href='https://rdrr.io/r/base/nrow.html'>ncol</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>mmkin</span><span class='op'>)</span>, +  obs_vars <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/names.html'>names</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>mkinmod</span><span class='op'>$</span><span class='va'>map</span><span class='op'>)</span>, +  standardized <span class='op'>=</span> <span class='cn'>TRUE</span>, +  xlab <span class='op'>=</span> <span class='st'>"Time"</span>, +  xlim <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/range.html'>range</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>data</span><span class='op'>$</span><span class='va'>time</span><span class='op'>)</span>, +  resplot <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"predicted"</span>, <span class='st'>"time"</span><span class='op'>)</span>, +  ymax <span class='op'>=</span> <span class='st'>"auto"</span>, +  maxabs <span class='op'>=</span> <span class='st'>"auto"</span>, +  ncol.legend <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/ifelse.html'>ifelse</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'><=</span> <span class='fl'>3</span>, <span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'>+</span> <span class='fl'>1</span>, <span class='fu'><a href='https://rdrr.io/r/base/ifelse.html'>ifelse</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'><=</span> <span class='fl'>8</span>, <span class='fl'>3</span>, <span class='fl'>4</span><span class='op'>)</span><span class='op'>)</span>, +  nrow.legend <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/Round.html'>ceiling</a></span><span class='op'>(</span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'>+</span> <span class='fl'>1</span><span class='op'>)</span><span class='op'>/</span><span class='va'>ncol.legend</span><span class='op'>)</span>, +  rel.height.legend <span class='op'>=</span> <span class='fl'>0.03</span> <span class='op'>+</span> <span class='fl'>0.08</span> <span class='op'>*</span> <span class='va'>nrow.legend</span>, +  rel.height.bottom <span class='op'>=</span> <span class='fl'>1.1</span>, +  pch_ds <span class='op'>=</span> <span class='fl'>1</span><span class='op'>:</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span>, +  col_ds <span class='op'>=</span> <span class='va'>pch_ds</span> <span class='op'>+</span> <span class='fl'>1</span>, +  lty_ds <span class='op'>=</span> <span class='va'>col_ds</span>, +  frame <span class='op'>=</span> <span class='cn'>TRUE</span>, +  <span class='va'>...</span> +<span class='op'>)</span> + +<span class='co'># S3 method for nlme.mmkin</span> +<span class='fu'><a href='https://rdrr.io/r/graphics/plot.default.html'>plot</a></span><span class='op'>(</span> +  <span class='va'>x</span>, +  i <span class='op'>=</span> <span class='fl'>1</span><span class='op'>:</span><span class='fu'><a href='https://rdrr.io/r/base/nrow.html'>ncol</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>mmkin</span><span class='op'>)</span>, +  obs_vars <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/names.html'>names</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>mkinmod</span><span class='op'>$</span><span class='va'>map</span><span class='op'>)</span>, +  standardized <span class='op'>=</span> <span class='cn'>TRUE</span>, +  xlab <span class='op'>=</span> <span class='st'>"Time"</span>, +  xlim <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/range.html'>range</a></span><span class='op'>(</span><span class='va'>x</span><span class='op'>$</span><span class='va'>data</span><span class='op'>$</span><span class='va'>time</span><span class='op'>)</span>, +  resplot <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"predicted"</span>, <span class='st'>"time"</span><span class='op'>)</span>, +  ymax <span class='op'>=</span> <span class='st'>"auto"</span>, +  maxabs <span class='op'>=</span> <span class='st'>"auto"</span>, +  ncol.legend <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/ifelse.html'>ifelse</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'><=</span> <span class='fl'>3</span>, <span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'>+</span> <span class='fl'>1</span>, <span class='fu'><a href='https://rdrr.io/r/base/ifelse.html'>ifelse</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'><=</span> <span class='fl'>8</span>, <span class='fl'>3</span>, <span class='fl'>4</span><span class='op'>)</span><span class='op'>)</span>, +  nrow.legend <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/Round.html'>ceiling</a></span><span class='op'>(</span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span> <span class='op'>+</span> <span class='fl'>1</span><span class='op'>)</span><span class='op'>/</span><span class='va'>ncol.legend</span><span class='op'>)</span>, +  rel.height.legend <span class='op'>=</span> <span class='fl'>0.03</span> <span class='op'>+</span> <span class='fl'>0.08</span> <span class='op'>*</span> <span class='va'>nrow.legend</span>, +  rel.height.bottom <span class='op'>=</span> <span class='fl'>1.1</span>, +  pch_ds <span class='op'>=</span> <span class='fl'>1</span><span class='op'>:</span><span class='fu'><a href='https://rdrr.io/r/base/length.html'>length</a></span><span class='op'>(</span><span class='va'>i</span><span class='op'>)</span>, +  col_ds <span class='op'>=</span> <span class='va'>pch_ds</span> <span class='op'>+</span> <span class='fl'>1</span>, +  lty_ds <span class='op'>=</span> <span class='va'>col_ds</span>, +  frame <span class='op'>=</span> <span class='cn'>TRUE</span>, +  <span class='va'>...</span> +<span class='op'>)</span></pre> + +    <h2 class="hasAnchor" id="arguments"><a class="anchor" href="#arguments"></a>Arguments</h2> +    <table class="ref-arguments"> +    <colgroup><col class="name" /><col class="desc" /></colgroup> +    <tr> +      <th>x</th> +      <td><p>An object of class <a href='saem.html'>saem.mmkin</a> or <a href='nlme.mmkin.html'>nlme.mmkin</a></p></td> +    </tr> +    <tr> +      <th>i</th> +      <td><p>A numeric index to select datasets for which to plot the individual predictions, +in case plots get too large</p></td> +    </tr> +    <tr> +      <th>obs_vars</th> +      <td><p>A character vector of names of the observed variables for +which the data and the model should be plotted. Defauls to all observed +variables in the model.</p></td> +    </tr> +    <tr> +      <th>standardized</th> +      <td><p>Should the residuals be standardized? Only takes effect if +<code>resplot = "time"</code>.</p></td> +    </tr> +    <tr> +      <th>xlab</th> +      <td><p>Label for the x axis.</p></td> +    </tr> +    <tr> +      <th>xlim</th> +      <td><p>Plot range in x direction.</p></td> +    </tr> +    <tr> +      <th>resplot</th> +      <td><p>Should the residuals plotted against time or against +predicted values?</p></td> +    </tr> +    <tr> +      <th>ymax</th> +      <td><p>Vector of maximum y axis values</p></td> +    </tr> +    <tr> +      <th>maxabs</th> +      <td><p>Maximum absolute value of the residuals. This is used for the +scaling of the y axis and defaults to "auto".</p></td> +    </tr> +    <tr> +      <th>ncol.legend</th> +      <td><p>Number of columns to use in the legend</p></td> +    </tr> +    <tr> +      <th>nrow.legend</th> +      <td><p>Number of rows to use in the legend</p></td> +    </tr> +    <tr> +      <th>rel.height.legend</th> +      <td><p>The relative height of the legend shown on top</p></td> +    </tr> +    <tr> +      <th>rel.height.bottom</th> +      <td><p>The relative height of the bottom plot row</p></td> +    </tr> +    <tr> +      <th>pch_ds</th> +      <td><p>Symbols to be used for plotting the data.</p></td> +    </tr> +    <tr> +      <th>col_ds</th> +      <td><p>Colors used for plotting the observed data and the +corresponding model prediction lines for the different datasets.</p></td> +    </tr> +    <tr> +      <th>lty_ds</th> +      <td><p>Line types to be used for the model predictions.</p></td> +    </tr> +    <tr> +      <th>frame</th> +      <td><p>Should a frame be drawn around the plots?</p></td> +    </tr> +    <tr> +      <th>...</th> +      <td><p>Further arguments passed to <code><a href='https://rdrr.io/r/graphics/plot.default.html'>plot</a></code>.</p></td> +    </tr> +    </table> + +    <h2 class="hasAnchor" id="value"><a class="anchor" href="#value"></a>Value</h2> + +    <p>The functions are called for their side effect.</p> +    <h2 class="hasAnchor" id="author"><a class="anchor" href="#author"></a>Author</h2> + +    <p>Johannes Ranke</p> + +    <h2 class="hasAnchor" id="examples"><a class="anchor" href="#examples"></a>Examples</h2> +    <pre class="examples"><div class='input'><span class='va'>ds</span> <span class='op'><-</span> <span class='fu'><a href='https://rdrr.io/r/base/lapply.html'>lapply</a></span><span class='op'>(</span><span class='va'>experimental_data_for_UBA_2019</span><span class='op'>[</span><span class='fl'>6</span><span class='op'>:</span><span class='fl'>10</span><span class='op'>]</span>, + <span class='kw'>function</span><span class='op'>(</span><span class='va'>x</span><span class='op'>)</span> <span class='va'>x</span><span class='op'>$</span><span class='va'>data</span><span class='op'>[</span><span class='fu'><a href='https://rdrr.io/r/base/c.html'>c</a></span><span class='op'>(</span><span class='st'>"name"</span>, <span class='st'>"time"</span>, <span class='st'>"value"</span><span class='op'>)</span><span class='op'>]</span><span class='op'>)</span> +<span class='fu'><a href='https://rdrr.io/r/base/names.html'>names</a></span><span class='op'>(</span><span class='va'>ds</span><span class='op'>)</span> <span class='op'><-</span> <span class='fu'><a href='https://rdrr.io/r/base/paste.html'>paste0</a></span><span class='op'>(</span><span class='st'>"ds "</span>, <span class='fl'>6</span><span class='op'>:</span><span class='fl'>10</span><span class='op'>)</span> +<span class='va'>dfop_sfo</span> <span class='op'><-</span> <span class='fu'><a href='mkinmod.html'>mkinmod</a></span><span class='op'>(</span>parent <span class='op'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span><span class='op'>(</span><span class='st'>"DFOP"</span>, <span class='st'>"A1"</span><span class='op'>)</span>, +  A1 <span class='op'>=</span> <span class='fu'><a href='mkinsub.html'>mkinsub</a></span><span class='op'>(</span><span class='st'>"SFO"</span><span class='op'>)</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> +<span class='co'># \dontrun{</span> +<span class='va'>f</span> <span class='op'><-</span> <span class='fu'><a href='mmkin.html'>mmkin</a></span><span class='op'>(</span><span class='fu'><a href='https://rdrr.io/r/base/list.html'>list</a></span><span class='op'>(</span><span class='st'>"DFOP-SFO"</span> <span class='op'>=</span> <span class='va'>dfop_sfo</span><span class='op'>)</span>, <span class='va'>ds</span>, quiet <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> +<span class='fu'><a href='https://rdrr.io/r/graphics/plot.default.html'>plot</a></span><span class='op'>(</span><span class='va'>f</span><span class='op'>[</span>, <span class='fl'>3</span><span class='op'>:</span><span class='fl'>4</span><span class='op'>]</span>, standardized <span class='op'>=</span> <span class='cn'>TRUE</span><span class='op'>)</span> +</div><div class='img'><img src='plot_mixed-1.png' alt='' width='700' height='433' /></div><div class='input'> +<span class='kw'><a href='https://rdrr.io/r/base/library.html'>library</a></span><span class='op'>(</span><span class='va'><a href='https://svn.r-project.org/R-packages/trunk/nlme/'>nlme</a></span><span class='op'>)</span> +<span class='co'># For this fit we need to increase pnlsMaxiter, and we increase the</span> +<span class='co'># tolerance in order to speed up the fit for this example evaluation</span> +<span class='va'>f_nlme</span> <span class='op'><-</span> <span class='fu'><a href='https://rdrr.io/pkg/nlme/man/nlme.html'>nlme</a></span><span class='op'>(</span><span class='va'>f</span>, control <span class='op'>=</span> <span class='fu'><a href='https://rdrr.io/r/base/list.html'>list</a></span><span class='op'>(</span>pnlsMaxIter <span class='op'>=</span> <span class='fl'>120</span>, tolerance <span class='op'>=</span> <span class='fl'>1e-3</span><span class='op'>)</span><span class='op'>)</span> +<span class='fu'><a href='https://rdrr.io/r/graphics/plot.default.html'>plot</a></span><span class='op'>(</span><span class='va'>f_nlme</span><span class='op'>)</span> +</div><div class='img'><img src='plot_mixed-2.png' alt='' width='700' height='433' /></div><div class='input'> +<span class='va'>f_saem</span> <span class='op'><-</span> <span class='fu'><a href='saem.html'>saem</a></span><span class='op'>(</span><span class='va'>f</span><span class='op'>)</span> +</div><div class='output co'>#> Running main SAEM algorithm +#> [1] "Mon Nov  9 16:07:05 2020" +#> .... +#>     Minimisation finished +#> [1] "Mon Nov  9 16:07:14 2020"</div><div class='input'><span class='fu'><a href='https://rdrr.io/r/graphics/plot.default.html'>plot</a></span><span class='op'>(</span><span class='va'>f_saem</span><span class='op'>)</span> +</div><div class='img'><img src='plot_mixed-3.png' alt='' width='700' height='433' /></div><div class='input'><span class='co'># }</span> +</div></pre> +  </div> +  <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> +    <nav id="toc" data-toggle="toc" class="sticky-top"> +      <h2 data-toc-skip>Contents</h2> +    </nav> +  </div> +</div> + + +      <footer> +      <div class="copyright"> +  <p>Developed by Johannes Ranke.</p> +</div> + +<div class="pkgdown"> +  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p> +</div> + +      </footer> +   </div> + +   + + +  </body> +</html> + + diff --git a/docs/dev/reference/reexports.html b/docs/dev/reference/reexports.html index fe27de4b..f12a2690 100644 --- a/docs/dev/reference/reexports.html +++ b/docs/dev/reference/reexports.html @@ -45,6 +45,8 @@ below to see their documentation.    lmtestlrtest +  nlmenlme +  " /> @@ -77,7 +79,7 @@ below to see their documentation.        </button>        <span class="navbar-brand">          <a class="navbar-link" href="../index.html">mkin</a> -        <span class="version label label-danger" data-toggle="tooltip" data-placement="bottom" title="In-development version">0.9.50.3</span> +        <span class="version label label-info" data-toggle="tooltip" data-placement="bottom" title="In-development version">0.9.50.4</span>        </span>      </div> @@ -125,7 +127,7 @@ below to see their documentation.        </ul>        <ul class="nav navbar-nav navbar-right">          <li> -  <a href="http://github.com/jranke/mkin/"> +  <a href="https://github.com/jranke/mkin/">      <span class="fab fa fab fa-github fa-lg"></span>    </a> @@ -144,16 +146,18 @@ below to see their documentation.    <div class="col-md-9 contents">      <div class="page-header">      <h1>Objects exported from other packages</h1> -    <small class="dont-index">Source: <a href='http://github.com/jranke/mkin/blob/master/R/lrtest.mkinfit.R'><code>R/lrtest.mkinfit.R</code></a></small> +    <small class="dont-index">Source: <a href='https://github.com/jranke/mkin/blob/master/R/lrtest.mkinfit.R'><code>R/lrtest.mkinfit.R</code></a>, <a href='https://github.com/jranke/mkin/blob/master/R/nlme.mmkin.R'><code>R/nlme.mmkin.R</code></a></small>      <div class="hidden name"><code>reexports.Rd</code></div>      </div>      <div class="ref-description">      <p>These objects are imported from other packages. Follow the links  below to see their documentation.</p> -<dl'> +<dl>    <dt>lmtest</dt><dd><p><code><a href='https://rdrr.io/pkg/lmtest/man/lrtest.html'>lrtest</a></code></p></dd> +  <dt>nlme</dt><dd><p><code><a href='https://rdrr.io/pkg/nlme/man/nlme.html'>nlme</a></code></p></dd> +  </dl>      </div> @@ -175,7 +179,7 @@ below to see their documentation.</p>  </div>  <div class="pkgdown"> -  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.5.1.</p> +  <p>Site built with <a href="https://pkgdown.r-lib.org/">pkgdown</a> 1.6.1.</p>  </div>        </footer> diff --git a/docs/dev/sitemap.xml b/docs/dev/sitemap.xml index d6f55550..5cfca07a 100644 --- a/docs/dev/sitemap.xml +++ b/docs/dev/sitemap.xml @@ -157,10 +157,7 @@      <loc>https://pkgdown.jrwb.de/mkin/reference/plot.nafta.html</loc>    </url>    <url> -    <loc>https://pkgdown.jrwb.de/mkin/reference/plot.nlme.mmkin.html</loc> -  </url> -  <url> -    <loc>https://pkgdown.jrwb.de/mkin/reference/plot.saem.mmkin.html</loc> +    <loc>https://pkgdown.jrwb.de/mkin/reference/plot_mixed.html</loc>    </url>    <url>      <loc>https://pkgdown.jrwb.de/mkin/reference/print.mkinds.html</loc> diff --git a/man/plot.saem.mmkin.Rd b/man/plot.saem.mmkin.Rd deleted file mode 100644 index 1f674bd7..00000000 --- a/man/plot.saem.mmkin.Rd +++ /dev/null @@ -1,94 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/plot.saem.mmkin.R -\name{plot.saem.mmkin} -\alias{plot.saem.mmkin} -\title{Plot an saem fitted nonlinear mixed model obtained via an mmkin row object} -\usage{ -\method{plot}{saem.mmkin}( -  x, -  i = 1:ncol(x$mmkin), -  obs_vars = names(x$mkinmod$map), -  standardized = TRUE, -  xlab = "Time", -  xlim = range(x$data$time), -  resplot = c("predicted", "time"), -  ymax = "auto", -  maxabs = "auto", -  ncol.legend = ifelse(length(i) <= 3, length(i) + 1, ifelse(length(i) <= 8, 3, 4)), -  nrow.legend = ceiling((length(i) + 1)/ncol.legend), -  rel.height.legend = 0.03 + 0.08 * nrow.legend, -  rel.height.bottom = 1.1, -  pch_ds = 1:length(i), -  col_ds = pch_ds + 1, -  lty_ds = col_ds, -  frame = TRUE, -  ... -) -} -\arguments{ -\item{x}{An object of class \code{\link{saem.mmkin}}} - -\item{i}{A numeric index to select datasets for which to plot the saem fit, -in case plots get too large} - -\item{obs_vars}{A character vector of names of the observed variables for -which the data and the model should be plotted. Defauls to all observed -variables in the model.} - -\item{standardized}{Should the residuals be standardized? Only takes effect if -\code{resplot = "time"}.} - -\item{xlab}{Label for the x axis.} - -\item{xlim}{Plot range in x direction.} - -\item{resplot}{Should the residuals plotted against time or against -predicted values?} - -\item{ymax}{Vector of maximum y axis values} - -\item{maxabs}{Maximum absolute value of the residuals. This is used for the -scaling of the y axis and defaults to "auto".} - -\item{ncol.legend}{Number of columns to use in the legend} - -\item{nrow.legend}{Number of rows to use in the legend} - -\item{rel.height.legend}{The relative height of the legend shown on top} - -\item{rel.height.bottom}{The relative height of the bottom plot row} - -\item{pch_ds}{Symbols to be used for plotting the data.} - -\item{col_ds}{Colors used for plotting the observed data and the -corresponding model prediction lines for the different datasets.} - -\item{lty_ds}{Line types to be used for the model predictions.} - -\item{frame}{Should a frame be drawn around the plots?} - -\item{...}{Further arguments passed to \code{\link{plot}}.} -} -\value{ -The function is called for its side effect. -} -\description{ -Plot an saem fitted nonlinear mixed model obtained via an mmkin row object -} -\examples{ -ds <- lapply(experimental_data_for_UBA_2019[6:10], - function(x) x$data[c("name", "time", "value")]) -names(ds) <- paste0("ds ", 6:10) -dfop_sfo <- mkinmod(parent = mkinsub("DFOP", "A1"), -  A1 = mkinsub("SFO"), quiet = TRUE) -\dontrun{ -f <- mmkin(list("DFOP-SFO" = dfop_sfo), ds, quiet = TRUE) -plot(f[, 3:4], standardized = TRUE) - -f_saem <- saem(f) -plot(f_saem) -} -} -\author{ -Johannes Ranke -} diff --git a/man/plot.nlme.mmkin.Rd b/man/plot_mixed.Rd index f426f77b..d3cee7c9 100644 --- a/man/plot.nlme.mmkin.Rd +++ b/man/plot_mixed.Rd @@ -1,9 +1,32 @@  % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/plot.nlme.mmkin.R -\name{plot.nlme.mmkin} +% Please edit documentation in R/plot_mixed.R +\name{plot_mixed} +\alias{plot_mixed} +\alias{plot.saem.mmkin}  \alias{plot.nlme.mmkin} -\title{Plot a fitted nonlinear mixed model obtained via an mmkin row object} +\title{Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object}  \usage{ +\method{plot}{saem.mmkin}( +  x, +  i = 1:ncol(x$mmkin), +  obs_vars = names(x$mkinmod$map), +  standardized = TRUE, +  xlab = "Time", +  xlim = range(x$data$time), +  resplot = c("predicted", "time"), +  ymax = "auto", +  maxabs = "auto", +  ncol.legend = ifelse(length(i) <= 3, length(i) + 1, ifelse(length(i) <= 8, 3, 4)), +  nrow.legend = ceiling((length(i) + 1)/ncol.legend), +  rel.height.legend = 0.03 + 0.08 * nrow.legend, +  rel.height.bottom = 1.1, +  pch_ds = 1:length(i), +  col_ds = pch_ds + 1, +  lty_ds = col_ds, +  frame = TRUE, +  ... +) +  \method{plot}{nlme.mmkin}(    x,    i = 1:ncol(x$mmkin), @@ -21,13 +44,14 @@    pch_ds = 1:length(i),    col_ds = pch_ds + 1,    lty_ds = col_ds, -  frame = TRUE +  frame = TRUE, +  ...  )  }  \arguments{ -\item{x}{An object of class \code{\link{nlme.mmkin}}} +\item{x}{An object of class \link{saem.mmkin} or \link{nlme.mmkin}} -\item{i}{A numeric index to select datasets for which to plot the nlme fit, +\item{i}{A numeric index to select datasets for which to plot the individual predictions,  in case plots get too large}  \item{obs_vars}{A character vector of names of the observed variables for @@ -65,12 +89,14 @@ corresponding model prediction lines for the different datasets.}  \item{lty_ds}{Line types to be used for the model predictions.}  \item{frame}{Should a frame be drawn around the plots?} + +\item{...}{Further arguments passed to \code{\link{plot}}.}  }  \value{ -The function is called for its side effect. +The functions are called for their side effect.  }  \description{ -Plot a fitted nonlinear mixed model obtained via an mmkin row object +Plot predictions from a fitted nonlinear mixed model obtained via an mmkin row object  }  \examples{  ds <- lapply(experimental_data_for_UBA_2019[6:10], @@ -87,6 +113,9 @@ library(nlme)  # tolerance in order to speed up the fit for this example evaluation  f_nlme <- nlme(f, control = list(pnlsMaxIter = 120, tolerance = 1e-3))  plot(f_nlme) + +f_saem <- saem(f) +plot(f_saem)  }  }  \author{ diff --git a/man/reexports.Rd b/man/reexports.Rd index bb77acc5..ccba7567 100644 --- a/man/reexports.Rd +++ b/man/reexports.Rd @@ -1,9 +1,10 @@  % Generated by roxygen2: do not edit by hand -% Please edit documentation in R/lrtest.mkinfit.R +% Please edit documentation in R/lrtest.mkinfit.R, R/nlme.mmkin.R  \docType{import}  \name{reexports}  \alias{reexports}  \alias{lrtest} +\alias{nlme}  \title{Objects exported from other packages}  \keyword{internal}  \description{ @@ -12,5 +13,7 @@ below to see their documentation.  \describe{    \item{lmtest}{\code{\link[lmtest]{lrtest}}} + +  \item{nlme}{\code{\link[nlme]{nlme}}}  }} | 
