2012-02-10 92 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%") 
相關問題