R/parm.vs.parm.R

# 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/.

## Added by Andrew Hooker
## 21/12/2005



#' Plot parameters vs other parameters
#' 
#' This function plots the parameter values stored in an Xpose data object
#' versus each other in a series of graphs.  The mirror functionality is
#' available for this function.
#' 
#' Each of the parameters in the Xpose data object, as specified in
#' \code{object@Prefs@Xvardef$parms}, is plotted against the rest, creating a
#' stack of plots.
#' 
#' A wide array of extra options controlling \code{xyplots} are available. See
#' \code{\link{xpose.plot.default}} and \code{\link{xpose.panel.default}} for
#' details.
#' 
#' @param object An xpose.data object.
#' @param onlyfirst Logical value indicating whether only the first row per
#' individual is included in the plot.
#' @param abline Allows for a line of identity.
#' @param smooth Logical value indicating whether an x-y smooth should be
#' superimposed.  The default is TRUE.
#' @param type The plot type - defaults to points only.
#' @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{xpose.plot.default}.
#' @return Returns a stack of xyplots and histograms of parameters against
#' parameters.
#' @author Andrew Hooker
#' @keywords methods
#' @examples
#' 
#' \dontrun{
#' ## We expect to find the required NONMEM run and table files for run
#' ## 5 in the current working directory
#' xpdb <- xpose.data(5)
#' 
#' 
#' parm.vs.parm(xpdb)
#' 
#' 
#' parm.vs.parm(xpdb,mirror=3)
#' }
#' 
#' @export parm.vs.parm
#' @family specific functions 
"parm.vs.parm" <-
  function(object,
           #xlb  = NULL,
           #ylb  = NULL,
           onlyfirst=TRUE,
           #inclZeroWRES=FALSE,
           #subset=xsubset(object),
           #mirror=FALSE,
           #seed  = NULL,
           #bins  = NULL,
           #samp  = NULL,
           abline= FALSE,
           smooth=TRUE,
           #prompt = FALSE,
           type="p",
           
           main="Default",
           ...) {
    
    ## is everything in place?
    for (i in xvardef("parms", object)) {      
      if(is.null(i)) {
        cat("Parameters are not properly set in the database!\n")
        return()
      }
    }


    ## create enpty list for plots
    number.of.plots <- 0
    for (i in xvardef("parms", object)) {
      for (j in xvardef("parms", object)) {
         if (j!=i) {
           if(!is.factor(object@Data[[i]])){
             number.of.plots <- number.of.plots + 1
           }
         }
       }
    }
    plotList <- vector("list",number.of.plots)
    plot.num <- 0 # initialize plot number
    
    ## loop over params
    for (i in xvardef("parms", object)) {  
    
      for (j in xvardef("parms", object)) {
      
        if (j!=i) {
          
          if(!is.factor(object@Data[[i]])){
                
            xplot <- xpose.plot.default(j,
                                        i,
                                        object,
                                        main=NULL,
                                        #xlb = xlb,
                                        #ylb = ylb,
                                        abline=abline,
                                        #abllwd=abllwd,
                                        onlyfirst = onlyfirst,
                                        #inclZeroWRES = inclZeroWRES,
                                        #subset = subset,
                                        smooth=smooth,
                                        type=type,
                                        pass.plot.list=TRUE,
                                        ...)
            
            plot.num <- plot.num+1
            plotList[[plot.num]] <- xplot
          }
        }
      } 
    } 

    default.plot.title <- "Parameters vs. parameters "
    plotTitle <- xpose.multiple.plot.title(object=object,
                                           plot.text = default.plot.title,
                                           main=main,
                                           ...)
    obj <- xpose.multiple.plot(plotList,plotTitle,...)
    return(obj)

  }

Try the xpose4 package in your browser

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

xpose4 documentation built on May 31, 2022, 5:07 p.m.