2012-07-01 10 views
15

Sto scrivendo un pacchetto ma un messaggio persistente R CMD check mi impedisce di terminare il pacchetto e di inviarlo a CRAN. Io uso roxygen2 per la documentazione in linea, anche se questo probabilmente non è la causa principale dell'errore.R Avviso di controllo CMD: funzioni/metodi con utilizzo nell'oggetto della documentazione ... ma non nel codice

Se sai cosa fare per rimuovere questo avviso, posso probabilmente capire un modo di farlo usando roxygen2.

Come posso rimuovere l'avvisoFunctions/methods with usage in documentation object ... but not in codedai miei assegni?


Il R CMD check avvertimento:

* checking for code/documentation mismatches ... WARNING 
Functions/methods with usage in documentation object 'names<-' but not in code: 
    names<- 

La funzione e roxygen documentazione:

#' Updates names and variable.labels attribute of surveydata. 
#' 
#' @name names<- 
#' @rdname names 
#' @aliases names<- names<-.surveydata 
#' @param x surveydata object 
#' @param value New names 
#' @method names<- surveydata 
#' @usage names(x) <- value 
"names<-.surveydata" <- function(x, value){ 
    invisible(NULL) 
} 

Il file risultante .rd documentazione:

\name{names<-} 
\alias{names<-} 
\alias{names<-.surveydata} 
\title{Updates names and variable.labels attribute of surveydata.} 
\usage{ 
    names(x) <- value 
} 
\arguments{ 
    \item{x}{surveydata object} 

    \item{value}{New names} 
} 
\description{ 
    Updates names and variable.labels attribute of 
    surveydata. 
} 

ho un controllo incrociato la mia documentazione con la documentazione per names<- a base di R, e sembra identico:

\title{ The Names of an Object} 
\name{names} 
\alias{names} 
\alias{names.default} 
\alias{names<-} 
\alias{names<-.default} 
\keyword{attribute} 
\description{Functions to get or set the names of an object.} 

questione connessa (ma ho già implementato il suggerimento e ancora senza fortuna):


Dove sto andando male? Come posso rimuovere questo avviso dai controlli del pacchetto?

+0

Sono sicuro che questo non è un problema di roxygen2 ma un problema che si verifica quando nel pacchetto è presente un metodo per il quale il generico si trova in un altro pacchetto.Sono abbastanza sicuro di aver avuto problemi simili in passato ma sfortunatamente non riesco a ricordare la soluzione in questo momento :-( –

+1

Non penso che tu voglia la sezione '@ usage'. Nei miei file Rd di simile natura, vuoi che l'uso includa '\ method {names} {surveydata} (x) <- value' che * dovrebbe * essere prodotto dalla sezione' @ method'. Se non lo è dopo aver eliminato '@ usage' linea, quindi aggiungi una riga '@ usage' esplicita contenente quanto sopra? –

+1

@GavinSimpson Tale approccio sembra funzionare, grazie.Tuttavia, per impostazione predefinita,' roxygen' non genera tale utilizzo, da cui l'istruzione override. questa come una richiesta di bug/nuova funzione – Andrie

risposta

12

La sezione \usage nel file Rd deve includere le seguenti:

\method{names}{surveydata}(x) <- value 

Se questo non viene inserito automaticamente dalla linea @method (presumo che sarà solo aggiungere \method{names}{surveydata}(x)?), Allora avete bisogno di un esplicito @usage sezione che include quanto sopra. Qualcosa di simile

#' @usage \\method{names}{surveydata}(x) <- value 

Vorrei anche cambiare sezioni @name e @alias fare riferimento al metodo esplicitamente non il generico come che si scontreranno con il file Rd in R :: base.

In sostanza, l'avvertimento viene dal fatto che il pacchetto non significa contiene una funzione "names<-" ancora si utilizza questo \usage{}.

+0

+1 Questo sembra per funzionare - Non ricevo più alcun avviso 'R CMD check'. Grazie anche per i suggerimenti aggiuntivi su '@ name' e' @ alias'. Li studierò attentamente - molto probabilmente sono stati storpiati in questo modo nei miei tentativi di soddisfare il meccanismo di controllo del pacchetto! – Andrie

Problemi correlati