-
Notifications
You must be signed in to change notification settings - Fork 11
/
absval.wres.vs.pred.by.cov.R
153 lines (131 loc) · 5.59 KB
/
absval.wres.vs.pred.by.cov.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# Xpose 4
# An R-based population pharmacokinetic/
# pharmacodynamic model building aid for NONMEM.
# Copyright (C) 1998-2004 E. Niclas Jonsson and Mats Karlsson.
# Copyright (C) 2005-2008 Andrew C. Hooker, Justin J. Wilkins,
# Mats O. Karlsson and E. Niclas Jonsson.
# Copyright (C) 2009-2010 Andrew C. Hooker, Mats O. Karlsson and
# E. Niclas Jonsson.
# This file is a part of Xpose 4.
# Xpose 4 is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation, either version 3
# of the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public License
# along with this program. A copy can be cound in the R installation
# directory under \share\licenses. If not, see http://www.gnu.org/licenses/.
#' Absolute population weighted residuals vs population predictions,
#' conditioned on covariates, for Xpose 4
#'
#' This is a plot of absolute population weighted residuals (|WRES|) vs
#' population predictions (PRED) conditioned by covariates, a specific function
#' in Xpose 4. It is a wrapper encapsulating arguments to the
#' \code{xpose.plot.default} function. Most of the options take their default
#' values from xpose.data object but may be overridden by supplying them as
#' arguments.
#'
#' Each of the covariates in the Xpose data object, as specified in
#' \code{object@Prefs@Xvardef$Covariates}, is evaluated in turn, creating a
#' stack of plots.
#'
#' A wide array of extra options controlling xyplots are available. See
#' \code{\link{xpose.plot.default}} for details.
#'
#' @param object An xpose.data object.
#' @param ylb A string giving the label for the y-axis. \code{NULL} if none.
#' @param ids Logical. Should id labels on points be shown?
#' @param idsdir Direction for displaying point labels. The default is "up",
#' since we are displaying absolute values.
#' @param type Type of plot. The default is points only ("p"), but lines ("l")
#' and both ("b") are also available.
#' @param smooth Logical value indicating whether an x-y smooth should be
#' superimposed. The default is TRUE.
#' @param main The title of the plot. If \code{"Default"} then a default title
#' is plotted. Otherwise the value should be a string like \code{"my title"} or
#' \code{NULL} for no plot title.
#' @param \dots Other arguments passed to \code{link{xpose.plot.default}}.
#' @return Returns a stack of xyplots of |WRES| vs PRED, conditioned on
#' covariates.
#' @author E. Niclas Jonsson, Mats Karlsson, Andrew Hooker & Justin Wilkins
#' @seealso \code{\link{absval.wres.vs.pred}},
#' \code{\link{xpose.plot.default}}, \code{\link{xpose.panel.default}},
#' \code{\link[lattice]{xyplot}}, \code{\link{xpose.prefs-class}},
#' \code{\link{xpose.data-class}}
#' @examples
#'
#' \dontrun{
#' ## We expect to find the required NONMEM run and table files for run
#' ## 5 in the current working directory
#' xpdb5 <- xpose.data(5)
#'
#' ## Here we load the example xpose database
#' data(simpraz.xpdb)
#' xpdb <- simpraz.xpdb
#'
#' ## A vanilla plot
#' absval.wres.vs.pred.by.cov(xpdb)
#'
#' ## Custom axis labels
#' absval.wres.vs.pred.by.cov(xpdb, ylb="|CWRES|", xlb="PRED")
#'
#' ## Custom colours and symbols, IDs
#' absval.wres.vs.pred.by.cov(xpdb, cex=0.6, pch=3, col=1, ids=TRUE)
#' }
#'
#' @export absval.wres.vs.pred.by.cov
#' @family specific functions
"absval.wres.vs.pred.by.cov" <-
function(object,
ylb = "|WRES|",
type="p",
smooth=TRUE,
ids = FALSE,
idsdir="up",
main="Default",
...) {
if(is.null(check.vars(c("pred","wres"),
object,silent=FALSE))) {
return()
}
if(any(is.null(xvardef("covariates",object)))) {
return(cat("There are no covariates defined in the database!\n"))
}
## create list for plots
number.of.plots <- 0
for (i in xvardef("covariates", object)) {
number.of.plots <- number.of.plots + 1
}
plotList <- vector("list",number.of.plots)
plot.num <- 0 # initialize plot number
for (i in xvardef("covariates", object)) {
xplot <- xpose.plot.default(xvardef("pred",object),
xvardef("wres",object),
object,
main=NULL,
funy="abs",
ylb=ylb,
type=type,
smooth=smooth,
by=i,
ids = ids,
idsdir=idsdir,
pass.plot.list = TRUE,
...)
plot.num <- plot.num+1
plotList[[plot.num]] <- xplot
}
default.plot.title <- paste("|",xlabel(xvardef("wres",object),object),
"| \nvs. ",
xlabel(xvardef("pred",object),object),
sep="")
plotTitle <- xpose.multiple.plot.title(object=object,
plot.text = default.plot.title,
main=main,
...)
obj <- xpose.multiple.plot(plotList,plotTitle,...)
return(obj)
}