2012-02-10 89 views
6

我想添加一个二进制运算符函数到我的包,但它不是加载的包。例如,我定义这个功能,并将其保存为一个名为“wo.R”在一个包中创建一个二元运算符函数

`%wo%` <- function(x, y) { 
    x[!x %in% y] 
} 

文件并创建文档文件“wo.Rd”

\name{\%wo\%} 
\alias{\%wo\%} 
\title{Without} 
\description{Elements in one vector without matching elements in a second vector.} 
\usage{x \%wo\% y} 
\arguments{ 
    \item{x}{A vector.} 
    \item{y}{A vector.} 
} 
\value{A vector.} 
\author{me, based on example in the \code{\link{match}} function documentation.} 
\examples{ 
(1:10) \%wo\% c(3,7,12) 
} 

当我运行R CMD check myPackage它给这个检查文档示例时出错:Error: could not find function "%wo%" Execution halted。我可以删除该示例,并成功安装我的包,但%wo%函数未加载到我的包中。我可以在R会话中获取'wo.R'文件,它可以工作。我也可以定义函数为wo <- function(x, y) x[!x %in% y],这似乎工作正常。我探讨了其他软件包的源代码,比如'操作员',我的源代码和文档文件似乎与他们一致,但我显然忽略了一些东西。

+1

你导出功能?如果是这样,怎么样?如果您使用正则表达式导出,可能需要更新,否则只需导出此特定函数。 – Andrie 2012-02-10 09:30:49

+0

@ Andrie-哈哈!这是问题所在。我只是在NAMESPACE文件中预定义了'exportPattern(“^ [[:alpha:] +”)''。添加'export(“%wo%”)'诀窍。谢谢! – pistachionut 2012-02-10 09:42:29

回答

11

您需要导出NAMESPACE中的函数。

添加export声明,您的文档文件:

export("%wo%") 
相关问题