2012-02-10 21 views
6

Ben bir paket için bir ikili işleç işlevi eklemek çalışıyorum, ancak paket ile yükleme değil. örneğin, ben bu işlevi tanımlar ve 'wo.R'Bir paket içinde bir ikili işleç işlevi oluşturma

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

adlı bir dosya olarak kaydetmek ve ben R CMD check myPackage çalıştırdığınızda '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) 
} 

bu verir dokümantasyon dosyası oluşturmak Belge örneği kontrol edilirken hata oluştu: Error: could not find function "%wo%" Execution halted. Örneği kaldırabilir ve paketimi başarıyla yükleyebilirim, ancak% wo% işlevi paketimle yüklenmiyor. R oturumunda 'wo.R' dosyasını kaynaklayabilirim ve çalışır. Ayrıca işlevi wo <- function(x, y) x[!x %in% y] olarak tanımlayabilirim ve bu iyi çalışıyor gibi görünüyor. 'operatörler' gibi diğer paketler için kaynak kodun etrafına dolandım ve kaynak ve dokümantasyon dosyalarım bunlarla tutarlı görünüyor, ama açıkçası bir şeyle ilgileniyorum.

+1

işlevi ihraç mı? Öyleyse nasıl? Dışa aktarılacak düzenli bir ifade kullanıyorsanız, belki de güncellenmesi gerekiyorsa veya sadece bu özel işlevi dışa aktarmanız gerekiyorsa. – Andrie

+0

@ Andrie- aha! sorun buydu. NAMESPACE dosyasında önceden tanımlanmış 'exportPattern ("^[[: alpha:]] + ")' a sahip oldum. ihracatı eklendi ("% wo%") hile yaptı. Teşekkürler! – pistachionut

cevap

11

İşlevinizi NAMESPACE ürününüzde dışa aktarmanız gerekir.

sizin dokümantasyon dosyasına bir export deyimi ekleyin:

export("%wo%") 
İlgili konular