2016-03-04 20 views
8

Ich schreibe ein R-Paket und dokumentiere alle meine Funktionen mit roxygen2. Ich möchte jedoch nicht, dass alle Funktionen im Handbuch des Pakets erscheinen. Wie kann ich angeben, welche Funktionen im Pakethandbuch erscheinen sollen oder welche nicht?Funktion aus R-Paket-Handbuch ausschließen

Ich bin mir bewusst, dass die Benennung einer Funktion mit einem führenden Punkt, z.B. .f <- function() statt f <- function() ist eine Lösung. Gibt es andere Lösungen?

+2

Warum dokumentieren Sie sie, wenn Sie sie nicht im Handbuch haben wollen? – nrussell

+0

Weil es sowohl für mich nützlich ist, wenn ich mich erinnere, was Funktionen tun, als auch für andere, die die "versteckten" Funktionen verwenden möchten. Ich glaube, ich habe Beispiele in anderen Paketen gesehen, wo ich die Hilfeseite der Funktion nicht finden konnte, indem ich '' function_name' 'in die Konsole schrieb, nachdem ich das Paket importiert hatte, aber ich konnte die Hilfeseite sehen, wenn ich'? Pkgname: :: Funktionsname'. Ich könnte mich jedoch falsch erinnern. –

+2

Aber Funktionen, auf die mit ':::' zugegriffen wird, werden nicht aus Paketen exportiert - was normalerweise bedeutet, dass der Autor nicht beabsichtigt hat, dass Clients diese Funktion verwenden. Im Allgemeinen sind solche Funktionen nicht dokumentiert - z. 'Werkzeuge :::. is_ASCII'. Ich würde vermuten, dass, wenn Sie eine nicht exportierte Funktion vorfanden, die * Dokumentation * hat, höchstwahrscheinlich zuvor eine exportierte (und dokumentierte) Funktion war und aus der Liste der Exporte in einer späteren Version entfernt wurde. – nrussell

Antwort

16

ich verpasst hatte das folgende Detail in dem ausgezeichneten Buch R packages von Hadley Wickham (im Abschnitt über die Objektdokumentation):

@Keywords keyword1 Schlüsselwort2 ... fügt standardisierte Schlüsselwörter. Schlüsselwörter sind optional, aber falls vorhanden, müssen sie aus einer vordefinierten Liste in file.path (R.home ("doc"), "KEYWORDS") entnommen werden.

Im Allgemeinen sind Schlüsselwörter nicht nützlich außer @keywords intern. Mit dem Schlüsselwort internal wird die Funktion aus dem Paketindex entfernt und einige ihrer automatisierten Tests deaktiviert. Es ist üblich, @keywords intern für Funktionen zu verwenden, die für andere Entwickler interessant sind, die Ihr Paket erweitern, aber nicht für die meisten Benutzer.

Zugabe So @keywords internal den roxygen2 Funktion Dokumentation Ergebnisse in der Funktion nicht im Paket manuell/Index erscheinen, während immer noch die Seite nach dem Laden des Pakets zugänglich sein, Hilfe zu machen.

+0

+1 für die Aufspürung '@keywords intern.' Ich möchte nicht mit meinen internen Hilfsfunktionen Menschen langweilen, danke! – keberwein