Example, using args()
and formalArgs()
or formals()
function to know the list of arguments in a function.
I. Using args()
args(qplot)
# function (x, y = NULL, ..., data, facets = NULL, margins = FALSE,
# geom = "auto", xlim = c(NA, NA), ylim = c(NA, NA), log = "",
# main = NULL, xlab = deparse(substitute(x)), ylab = deparse(substitute(y)),
# asp = NA, stat = NULL, position = NULL)
# NULL
II. Using formalArgs()
formalArgs(qplot)
# [1] "x" "y" "..." "data" "facets" "margins" "geom" "xlim" "ylim" "log"
# [11] "main" "xlab" "ylab" "asp" "stat" "position"
III. Using formals()
formals(qplot)
# $x
# $y
NULL
# $...
# $data
# $facets
# NULL
# $margins
# [1] FALSE
# $geom
# [1] "auto"
# $xlim
# c(NA, NA)
# $ylim
# c(NA, NA)
# $log
# [1] ""
# $main
# NULL
# $xlab
# deparse(substitute(x))
# $ylab
# deparse(substitute(y))
# $asp
# [1] NA
# $stat
# NULL
# $position
# NULL
Then to check, type ?qplot
in R Console and check in the help page whether it has the same arguments.
IV. Analysis on par()
and some other similar kind of functions like options()
class(par)
# [1] "function"
class(par())
# [1] "list"
class(plot)
# [1] "function"
class(plot())
# Error in xy.coords(x, y, xlabel, ylabel, log) :
# argument "x" is missing, with no default
names(par())
# [1] "xlog" "ylog" "adj" "ann" "ask" "bg" "bty" "cex" "cex.axis"
# [10] "cex.lab" "cex.main" "cex.sub" "cin" "col" "col.axis" "col.lab" "col.main" "col.sub"
# [19] "cra" "crt" "csi" "cxy" "din" "err" "family" "fg" "fig"
# [28] "fin" "font" "font.axis" "font.lab" "font.main" "font.sub" "lab" "las" "lend"
# [37] "lheight" "ljoin" "lmitre" "lty" "lwd" "mai" "mar" "mex" "mfcol"
# [46] "mfg" "mfrow" "mgp" "mkh" "new" "oma" "omd" "omi" "page"
# [55] "pch" "pin" "plt" "ps" "pty" "smo" "srt" "tck" "tcl"
# [64] "usr" "xaxp" "xaxs" "xaxt" "xpd" "yaxp" "yaxs" "yaxt" "ylbias"
par()
is a functions which has list of parameters, whichever parameter you specify those will be stored inside par()
and in turn will effect the plot, the rest parameter has its own default set.
Similar kind of function options()
class(options)
# [1] "function"
class(options())
# [1] "list"
head(names(options())) # List is bigger, just printing head of it
# [1] "add.smooth" "browserNLdisabled" "CBoundsCheck" "check.bounds" "citation.bibtex.max"
# [6] "continue"
Calling options()
like par()
options()
$add.smooth
# [1] TRUE
# $browserNLdisabled
# [1] FALSE
# $CBoundsCheck
# [1] FALSE
# $check.bounds
# [1] FALSE
# $citation.bibtex.max
# [1] 1
# $continue
# [1] "+ "
# $contrasts
# unordered ordered
# "contr.treatment" "contr.poly"
# $defaultPackages
# [1] "datasets" "utils" "grDevices" "graphics" "stats" "methods"
# $demo.ask
# [1] "default"
# $deparse.cutoff
# [1] 60
# $device
# function (width, height, pointsize, record, rescale, xpinch,
# ypinch, bg, canvas, gamma, xpos, ypos, buffered, title, restoreConsole,
# clickToConfirm, fillOddEven, family = "", antialias)
# {
# check <- Sys.getenv("_R_CHECK_SCREEN_DEVICE_", "")
# msg <- "screen devices should not be used in examples etc"
# if (identical(check, "stop"))
# stop(msg, domain = NA)
# else if (identical(check, "warn"))
# warning(msg, immediate. = TRUE, noBreaks. = TRUE, domain = NA)
# new <- list()
# if (!missing(width))
# new$width <- as.double(width)
# if (!missing(height))
# new$height <- as.double(height)
# if (!missing(pointsize))
# new$pointsize <- as.double(pointsize)
# if (!missing(record))
# new$record <- record
# if (!missing(rescale))
# new$rescale <- rescale
# if (!missing(xpinch))
# new$xpinch <- as.double(xpinch)
# if (!missing(ypinch))
# new$ypinch <- as.double(ypinch)
# if (!missing(bg))
# new$bg <- bg
# if (!missing(canvas))
# new$canvas <- canvas
# if (!missing(gamma))
# new$gamma <- gamma
# if (!missing(xpos))
# new$xpos <- as.integer(xpos)
# if (!missing(ypos))
# new$ypos <- as.integer(ypos)
# if (!missing(buffered))
# new$buffered <- buffered
# if (!missing(title))
# new$title <- title
# if (!missing(restoreConsole))
# new$restoreConsole <- restoreConsole
# if (!missing(clickToConfirm))
# new$clickToConfirm <- clickToConfirm
# if (!missing(fillOddEven))
# new$fillOddEven <- fillOddEven
# if (!missing(antialias))
# new$antialias <- match.arg(antialias, aa.win)
# d <- check.options(new = new, envir = .WindowsEnv, name.opt = ".Windows.Options",
# reset = FALSE, assign.opt = FALSE)
# rescale <- match(d$rescale, c("R", "fit", "fixed"))
# if (is.na(rescale))
# stop("invalid value for 'rescale'")
# antialias <- pmatch(d$antialias, aa.win)
# invisible(.External(C_devga, "", d$width, d$height, d$pointsize,
# d$record, rescale, d$xpinch, d$ypinch, d$canvas, d$gamma,
# d$xpos, d$ypos, d$buffered, .PSenv, d$bg, d$restoreConsole,
# d$title, d$clickToConfirm, d$fillOddEven, family, antialias))
# }
# <bytecode: 0x0000000015330530>
# <environment: namespace:grDevices>
# $device.ask.default
# [1] FALSE
# $digits
# [1] 7
# $echo
# [1] TRUE
# $editor
# [1] "internal"
# $encoding
# [1] "native.enc"
# $example.ask
# [1] "default"
# $expressions
# [1] 5000
# $help.search.types
# [1] "vignette" "demo" "help"
# $help.try.all.packages
# [1] FALSE
# $help_type
# [1] "html"
# $HTTPUserAgent
# [1] "R (3.3.0 x86_64-w64-mingw32 x86_64 mingw32)"
# $install.packages.compile.from.source
# [1] "interactive"
# $internet.info
# [1] 2
# $keep.source
# [1] TRUE
# $keep.source.pkgs
# [1] FALSE
# $lme4.summary.cor.max
# [1] 12
# $locatorBell
# [1] TRUE
# $mailer
# [1] "mailto"
# $max.print
# [1] 99999
# $menu.graphics
# [1] TRUE
# $mgcv.vc.logrange
# [1] 25
# $na.action
# [1] "na.omit"
# $nwarnings
# [1] 50
# $OutDec
# [1] "."
# $pager
# [1] "internal"
# $papersize
# [1] "letter"
# $pdfviewer
# [1] "C:/PROGRA~1/R/R-33~1.0/bin/x64/open.exe"
# $pkgType
# [1] "both"
# $prompt
# [1] "> "
# $repos
# CRAN CRANextra
# "https://mirrors.tuna.tsinghua.edu.cn/CRAN" "http://www.stats.ox.ac.uk/pub/RWin"
# $scipen
# [1] 0
# $show.coef.Pvalues
# [1] TRUE
# $show.error.messages
# [1] TRUE
# $show.signif.stars
# [1] TRUE
# $str
# $str$strict.width
# [1] "no"
# $str$digits.d
# [1] 3
# $str$vec.len
# [1] 4
# $str.dendrogram.last
# [1] "`"
# $stringsAsFactors
# [1] TRUE
# $timeout
# [1] 60
# $ts.eps
# [1] 1e-05
# $ts.S.compat
# [1] FALSE
# $unzip
# [1] "internal"
# $useFancyQuotes
# [1] TRUE
# $verbose
# [1] FALSE
# $warn
# [1] 0
# $warning.length
# [1] 1000
# $width
# [1] 130
# $windowsTimeouts
# [1] 100 500