2016-08-16 293 views
0

通常当我们在控制台上输入par()时,它会给出par函数的所有默认参数列表。但plot怎么样,当我尝试plot()它给出了一个错误。像这样的功能有什么不同。plot()函数默认参数

它与它是通用功能有关。请指出我可以阅读的任何资源。

+1

'帮助( “相提并论”)':“相提并论,可以用来设置或查询** **图形参数“。 'help(“plot”)':“绘制R对象的通用函数。” – Roland

+0

在这里的评论中已经讨论了一个类似的问题:http://stackoverflow.com/q/38958236/4770166 – RHertel

回答

2

例如,使用args()formalArgs()formals()函数来知道函数中参数列表。

1.使用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。使用formalArgs()

formalArgs(qplot) 
    # [1] "x"  "y"  "..."  "data"  "facets" "margins" "geom"  "xlim"  "ylim"  "log"  
    # [11] "main"  "xlab"  "ylab"  "asp"  "stat"  "position" 

三,使用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 

那就要检查一下,类型?qplot R中控制台和帮助页面是否具有相同的参数检查。四,参考文献分析par()和一些其他类似种类的功能,如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()是有参数列表,你指定的任何参数,这些将被存储在内部par(),反过来会影响剧情,其余参数功能有它自己的默认设置。

类似样的功能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" 

调用options()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 
+0

这回答了如何找到参数,但为什么'plot'函数特别之处在于它没有给出默认参数列表当你使用命令'plot()' – emperorspride188

+1

@emperorspride:一些函数使用'UseMethod'在里面。剧情使用'plot'方法。有不同之处。我们很快就会回到这里。 –

+1

@ emperorspride188要了解请参阅在R Console内存储为'R-lang.pdf'的称为'R语言定义'的pdf。 '转到帮助 - >手册(PDF格式) - > R语言定义,参见第4章几页的功能说明。“ –