包构建错误 - 用法与功能不匹配

时间:2014-10-29 12:55:55

标签: r

我正在(重新)构建一个包,我有三个功能:

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, ...)
}

2 个答案:

答案 0 :(得分:0)

你试过吗

\usage{
   diffPlot(x, ...)
   \method{diffPlot}{formula}(...)
   \method{diffPlot}{default}(...)
}

另请参阅:Guide of Writing R Extensions

答案 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}。