3

获取函数的参数R非常简单,可以通过args(functionname). 但我不知道如何heplotheplots包中获取函数的参数。

library(heplots)
?heplot
args(heplot)

function (mod, ...) 
NULL

我想得到以下部分:

## S3 method for class 'mlm'
heplot(mod, terms, hypotheses, term.labels = TRUE,
    hyp.labels = TRUE, err.label="Error", label.pos=NULL,
    variables = 1:2, error.ellipse = !add, 
    factor.means = !add, grand.mean = !add, remove.intercept = TRUE,
    type = c("II", "III", "2", "3"), idata=NULL, idesign=NULL,
    icontrasts=c("contr.sum", "contr.poly"),
    imatrix=NULL, iterm=NULL, markH0=!is.null(iterm),
    manova, size = c("evidence", "effect.size"),
    level = 0.68, alpha = 0.05, segments = 40, 
    center.pch = "+", center.cex=2,
    col = getOption("heplot.colors", 
               c("red", "blue", "black", "darkgreen", 
                 "darkcyan","magenta", "brown","darkgray")),
    lty = 2:1, lwd = 1:2, 
    fill=FALSE, fill.alpha=0.3,   
    xlab, ylab, main = "", xlim, ylim, axes=TRUE, offset.axes, 
    add = FALSE, verbose = FALSE, warn.rank = FALSE, ...)
4

1 回答 1

4

heplot是一个 S3 通用函数。它使用一个方法,heplot.mlm,它是一个非导出函数。您可以通过首先查看heplot. 如果您UseMethod在函数体中看到,则该函数使用方法。S3 泛型函数的所有可用方法都可以通过methods

> methods(heplot)

要访问非导出函数,您可以使用:::. 用这个包裹那个调用,args你就有了你正在寻找的参数列表。

> args(heplots:::heplot.mlm)
# function (mod, terms, hypotheses, term.labels = TRUE, hyp.labels = TRUE, 
#     err.label = "Error", label.pos = NULL, variables = 1:2, error.ellipse = !add, 
#     factor.means = !add, grand.mean = !add, remove.intercept = TRUE, 
#     type = c("II", "III", "2", "3"), idata = NULL, idesign = NULL, 
#     icontrasts = c("contr.sum", "contr.poly"), imatrix = NULL, 
#     iterm = NULL, markH0 = !is.null(iterm), manova, size = c("evidence", 
#         "effect.size"), level = 0.68, alpha = 0.05, segments = 40, 
#     center.pch = "+", center.cex = 2, col = getOption("heplot.colors", 
#         c("red", "blue", "black", "darkgreen", "darkcyan", "magenta", 
#             "brown", "darkgray")), lty = 2:1, lwd = 1:2, fill = FALSE, 
#     fill.alpha = 0.3, xlab, ylab, main = "", xlim, ylim, axes = TRUE, 
#     offset.axes, add = FALSE, verbose = FALSE, warn.rank = FALSE, 
#     ...) 
# NULL

注意:这个函数显然有很多参数,所以

> formals(args(heplots:::heplot.mlm))  ## or as.list()

可能是一种更好、更易读的方式来遍历参数列表。

于 2014-09-18T06:28:36.183 回答