我正在(重新)构建一个包,我有三个功能:
diffPlot <- function(x, ...) UseMethod("diffPlot")
diffPlot.default <- function(x, y, plotFUN=mean, errFUN=c("ci", "se", "sd"), conf=.95, grp.names=NULL, var.equal=FALSE, paired=FALSE, ...)
diffPlot.formula <- function(formula, plotFUN=mean, errFUN=c("ci", "se", "sd"), conf=.95, grp.names=NULL, var.equal=FALSE, paired=FALSE, ...)
这里的想法是用户可以将x,y格式传递给函数或公式(即Y~X)。因此用户不需要使用diffPlot.default或diffPlot.formula。原始diffPlot函数将读取用户输入的内容并选择适当的子函数。当所有三个函数都在我的本地工作区中时,这非常有效。
当我尝试构建程序包时,文档中出现问题。 R不喜欢Usage与函数本身不匹配的事实。我觉得我可能需要使diffPlot()函数成为Generic,但我真的不知道如何在包本身中做到这一点。对于它的价值,我在这里使用的模型是t.test。
以下是文档当前的用法部分:
\usage{
diffPlot(x, ...)
## Default Method
diffPlot(x, y, plotFUN=mean, errFUN=c("ci", "se", "sd"), conf=.95,
grp.names=NULL, var.equal=FALSE, paired=FALSE, ...)
## Method for class 'formula'
diffPlot(formula, plotFUN=mean, errFUN=c("ci", "se", "sd"), conf=.95,
grp.names=NULL, var.equal=FALSE, paired=FALSE, ...)
}
答案 0 :(得分:0)
你试过吗
\usage{
diffPlot(x, ...)
\method{diffPlot}{formula}(...)
\method{diffPlot}{default}(...)
}
答案 1 :(得分:0)
我能够找到解决方案,而Thothal的回答让我开始了。我删除了diffPlot.default和diffPlot.formula函数的手册页,只保留了通用diffPlot函数的一个。这是它的样子:
\name{diffPlot}
\alias{diffPlot}
\alias{diffPlot.default}
\alias{diffPlot.formula}
%- Also NEED an '\alias' for EACH other topic documented here.
\title{
Difference Plot
}
\description{
A function for creating a Difference Plot between two groups.
}
\usage{
diffPlot(x, ...)
## Default Method
\method{diffPlot}{default}(x, y, plotFUN=mean, errFUN=c("ci", "se", "sd"), conf=.95,
grp.names=NULL, var.equal=FALSE, paired=FALSE, ...)
## Method for class 'formula'
\method{diffPlot}{formula}(formula,data, plotFUN=mean, errFUN=c("ci", "se", "sd"), conf=.95,
grp.names=NULL, var.equal=FALSE, paired=FALSE, ...)
}
请注意在顶部使用\ alias {}和使用上面Thothal建议的\ method {generic} {class}。