2013-08-31 20 views
8

Die roxygen2-Dokumentation mit devtools document Funktion automatisch generiert ein Collate: Feld im Paket BESCHREIBUNG, unabhängig davon, ob es notwendig ist, die Paketbibliotheksdateien in einer bestimmten Reihenfolge zu laden.Wie kann ich die Sortierreihenfolge in Roxygen2 angeben?

Ich arbeite an einem Paket mit einer Reihe von S4-Methoden und möchte sicher sein, dass die Klassendefinitionen geladen werden, bevor irgendwelche Methoden oder andere Klassen sie verwenden, die ich mit der Collate Liste tun kann, aber ich ' Ich bin mir nicht sicher, wie ich dies im roxygen2-Dokumentationsformat angeben soll.

Die roxygen2 manual macht einen Hinweis auf einen @include Tag, aber das sieht aus wie es eigentlich nur könnte Code in der Dokumentation enthält, zum Beispiel für das Hinzufügen von externen Beispielen durch eine @examples Flagge. Kann dies zur Festlegung der Sortierreihenfolge für Methoden verwendet werden?

+0

Wenn die collate folgen Feld ist bereits in der Beschreibung roxygen2 erzeugt es nicht. Also würde ich sagen, dass du die Bestellung machen musst, die du willst und sie sollte respektiert werden. (Ich denke; daher der Kommentar gegen eine Antwort). –

+0

wäre es schön zu wissen, ob meine @ import-Interpretation korrekt ist. Es wäre sicherlich auch gut, wenn eine Funktion die Sortierreihenfolge aus einer Liste von Dateiabhängigkeiten herausfinden könnte, anstatt sie manuell zu bearbeiten. – cboettig

+0

Import wird zum Importieren eines Pakets verwendet. Dies ähnelt dem Auflisten eines Pakets im Abschnitt Abhängigkeiten, außer dass es viel sauberer ist, da es den Namespace des Benutzers nicht verschmutzt. – Dason

Antwort

13

Das Include-Tag wird verwendet, um anzugeben, dass eine Datei eine andere benötigt, um zu funktionieren. (Der Name include war vielleicht nicht die beste Wahl, aber so ist das Leben). Wenn Sie sicherstellen möchten, dass Datei B vor Datei A geladen wird, stellen Sie sicher, dass @include B in A. Roxygen kümmert sich um die Bestellung der Sortierfeld, um Ihre Einschränkungen zu erfüllen.

+0

brilliant, also include tut genau das, was ich brauche! – cboettig

3

Ich fand heraus, nur, dass, wenn Sie die @include Anweisung an den Anfang Ihrer R-Datei hinzufügen, es mit dem nächsten roxygen2 Dokumentation Block stört, wenn Sie es mit einem NULL zB

#' @include something.R 
NULL 

#' Documenting a function 
#' 
#" It does something... 
#' 
#' @param ... 
#'