2012-02-10 16 views
6

Sto provando ad aggiungere una funzione operatore binaria a un mio pacchetto, ma non si sta caricando con il pacchetto. Per esempio, io definisco questa funzione e salvarlo come un file chiamato 'wo.R'creazione di una funzione operatore binaria all'interno di un pacchetto

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

e creare il file di documentazione '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) 
} 

quando ho eseguito R CMD check myPackage dà questo errore durante il controllo dell'esempio di documentazione: Error: could not find function "%wo%" Execution halted. posso rimuovere l'esempio e installare il pacchetto correttamente, ma la funzione% wo% non viene caricata con il mio pacchetto. posso trovare il file 'wo.R' in una sessione R e funziona. posso anche definire la funzione come wo <- function(x, y) x[!x %in% y] e sembra funzionare bene. Ho cercato il codice sorgente per altri pacchetti, come "operatori", e i miei file di origine e documentazione sembrano coerenti con loro, ma ovviamente sto trascurando qualcosa.

+1

Si sta esportando la funzione? Se é cosi, come? Se stai utilizzando un'espressione regolare da esportare, forse è necessario aggiornarlo, oppure esportare semplicemente questa particolare funzione. – Andrie

+0

@ Andrie- aha! quello era il problema Ho appena avuto il 'exportPattern ("^[[: alpha:]] + ")' predefinito nel file NAMESPACE. aggiungendo 'export ("% wo% ")' ha fatto il trucco. Grazie! – pistachionut

risposta

11

È necessario esportare la funzione nel NAMESPACE.

Aggiungi un export dichiarazione al file di documentazione:

export("%wo%") 
Problemi correlati