2012-01-15 11 views
6

Mam funkcję, która nie robi niczego więcej niż reklamuje unikalny obiekt attr dla dowolnego obiektu R. demo podstawa:Dokumentowanie funkcji ustawiających z roxygenem

#' Setter function 
#' @param x an R object 
#' @param value a character value to set 
#' @export 
`foo<-` <- function(x, value){ 
    attr(x, 'foo') <- value 
    return(x) 
} 

To działa jak czar z wyjątkiem generowania dobry plik Rd, odpowiednia część:

\usage{ 
    foo(var, value) <- value 
} 

I oczywiście wywołuje ostrzeżenie podczas pracy R CMD check jak powinno być foo(var) <- value.

Wszelkie wskazówki są naprawdę doceniane!


Aktualizacja: dzięki richierocks wydaje się, że jest fix

+0

Czy używasz tlenu lub tlenu? – hadley

+0

@hadley: roxygen2, właśnie dodany tag roxygen również w celu uzyskania większej uwagi. – daroczig

+0

Jakiej wersji używasz? Roxygen2 powinien to zrobić automatycznie od 2.2 – hadley

Odpowiedz

7

Można użyć tagu roxygen @usage

Oto przykład jednego z moich pakietów:

#' @rdname pattern 
#' @usage pattern(x) <- value 
#' @param value New value 
#' @export pattern<- 
"pattern<-" <- function(x, value=c("^", "($|(_\\d+(_\\d+)*)$)")){ 
    attr(x, "pattern") <- value 
    x 
} 

Powoduje to uzyskanie wymaganej dokumentacji:

Usage 

    pattern(x) <- value 

Arguments 
x surveydata object 

value New value 
+0

Działa jak wdzięk, dziękuję @Andrie za skierowanie mojej uwagi na '@ użycie" - po prostu nie wiem, jak mogłem nie zauważyć tego przydatnego tagu. – daroczig

+1

Dzieje się tak, ponieważ nigdy nie powinieneś używać "@ użycia" - za każdym razem, gdy robisz to jest błąd w roxygen2 i powinieneś złożyć raport o błędzie. – hadley

+0

Dzięki @hadley, dodałem komentarz do [właściwego problemu] (https://github.com/klutometis/roxygen/issues/38#issuecomment-3516591). – daroczig

Powiązane problemy