2012-07-01 8 views
15

Piszę pakiet, ale jedno uporczywe ostrzeżenie R CMD check uniemożliwia ukończenie paczki i wysłanie jej do CRAN. Używam roxygen2 do bezpośredniej dokumentacji, chociaż prawdopodobnie nie jest to główna przyczyna błędu.Ostrzeżenie kontrolne R CMD: Funkcje/metody z użyciem w obiekcie dokumentacji ... ale nie w kodzie

Jeśli wiesz, co zrobić, aby usunąć to ostrzeżenie, mogę całkiem wymyślić sposób na wykonanie tego przy pomocy roxygen2.

Jak mogę usunąć ostrzeżenieFunctions/methods with usage in documentation object ... but not in codez moich kontroli pakietów?


R CMD check ostrzeżenie:

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

Funkcja i roxygen dokumentacja:

#' 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) 
} 

Powstały plik .rd dokumentacja:

\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. 
} 

mam zweryfikowane moje dokumentacji z dokumentacją dla names<- w bazie R, i wydaje się identyczny:

\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.} 

Powiązane pytanie (ale już wdrożone sugestię i nadal nie ma szczęścia):


Gdzie się mylę? Jak mogę usunąć to ostrzeżenie z kontroli przesyłek?

+0

Jestem prawie pewien, że nie jest to problem z roxygen2, ale problem, który pojawia się, gdy masz w pakiecie metodę, dla której lek generyczny znajduje się w innym pakiecie.Jestem prawie pewien, że mam podobne problemy w przeszłości, ale niestety nie pamiętam rozwiązania w tej chwili :-( –

+1

Nie sądzę, że chcesz sekcji '@ usage." W moich plikach Rd podobnych nature, chcesz, aby użycie zawierało '\ method {names} {surveydata} (x) <- value', które * powinno * być produkowane przez sekcję' @ method. 'Jeśli nie jest po usunięciu '@ usage' line, a następnie dodaj jawną linię '@ usage' zawierającą powyższe? –

+1

@GavinSimpson To podejście wydaje się działać, dziękuję.Jednakże domyślnie' roxygen' nie generuje tego użycia, stąd instrukcja override. to jako błąd/nowa prośba o funkcję – Andrie

Odpowiedz

12

sekcja w pliku Rd \usage musi zawierać następujące elementy:

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

Jeśli to nie jest automatycznie wstawiany przez linię @method (Przypuszczam, że tylko dodać \method{names}{surveydata}(x)?) To trzeba jawne @usage sekcja zawierająca powyższe. Coś jak

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

Chciałbym również zmienić sekcje @name i @alias odnieść się do sposobu wyraźnie nie generycznych, jak będzie kolidować z plikiem Rd w R :: Base.

Zasadniczo ostrzeżenie pochodzi z faktu, że pakiet nie zawiera funkcję "names<-" jeszcze używasz tego w \usage{}.

+0

+1 To wydaje się do pracy - nie otrzymuję już żadnych ostrzeżeń "R CMD check". Dziękujemy również za dodatkowe wskazówki dotyczące '@ name' i' @ alias'. Przestudiuję je uważnie - najprawdopodobniej zostały zmanipulowane w ten sposób w moich próbach spełnienia mechanizmu kontroli paczek! – Andrie

Powiązane problemy