Ich schreibe ein Paket von Funktionen, die ich die ganze Zeit benutze, von denen eine im Grunde ein kurzer Wrapper für setdiff
ist:
so 1:6 %\% 4:6 == 1:3
.
Dies zu dokumentieren, scheint ein Kampf zu sein. Hier sind die relevanten Teile meiner my_package-infix.Rd
-Datei, die Probleme aufwerfen:
Wenn ich R CMD check my_package_0.1.0.tar.gz
starte, bekomme ich Warnungen:
Ich nehme den Hinweis, dass das vielleicht bedeutet, dass ich mehr Eskapade brauche, ich habe versucht, diese Zeilen anzupassen:
%Vor%Aber die frustrierende Warnung, die produziert wird, ist:
%Vor% Nun sind wir also von einem ungeschnittenen Backslash zu zwei Backslashes übergegangen. Etwas summiert sich nicht ... was gibt? Der relevante Teil des .Rd
Parsing-Handbuchs (2.2.1) bietet keine große Hilfe:
Der umgekehrte Schrägstrich \ wird als Escape-Zeichen verwendet: \\, \%, \ {und \} Entferne die spezielle Bedeutung des zweiten Zeichens. Der Parser wird löscht den anfänglichen Backslash und gibt das andere Zeichen als Teil von zurück der Text. Der Backslash wird auch als Anfangszeichen für verwendet Markup-Makros. In einem R-ähnlichen oder LaTeX-ähnlichen Kontext ein Backslash gefolgt von einem Buchstaben beginnt ein Makro; der Makroname wird bis zum ersten nicht alphanumerischen Zeichen fortgesetzt. Wenn der Name ist nicht erkannt der Parser löscht alle Ziffern vom Ende und versucht es nochmal. Wenn es immer noch nicht erkannt wird, wird es als UNBEKANNT zurückgegeben Zeichen. Alle anderen Verwendungen von Backslashes sind erlaubt und werden übergeben durch den Parser als Text.
Und es scheint gut kompiliert zu haben - R CMD build
und R CMD INSTALL
geben keine Fehler, und wenn ich library(my_package)
, kann ich ?"%\%"
ausführen, um die richtige manuelle Seite aufzurufen, wo ich% co_de bekomme % unter Verwendung, wie erwartet (wenn ich nur einen einzigen Escape in A %\% B
und alias
verwende).
Ich habe einige andere Leute gesehen, die damit zu kämpfen haben, aber keine Lösungen, z. hier und hier , letzteres von Yihui Xie, Entwickler von usage
unter anderen Paketen.
(PS es nicht einmal knitr
mit einer geraden Anzahl von Backslashes in der Mitte, da dies bedeutet, das Prozentzeichen ist nicht maskiert und build
wird als ein Kommentarzeichen in %
Dateien interpretiert)
EDIT: Ich bin ein bisschen näher dran, die Nuss zu knacken (es scheint).
Wenn wir uns die Tabellen 1-3 des Parserhandbuchs (Seiten 5-7) ansehen, können wir das sehen Text, der an .Rd
gesendet wird, wird in einer "R-ähnlichen" Weise interpretiert, während der zu usage
als "verbatim" interpretiert wird. Ich bin mir nicht sicher, was genau das bedeutet (trotz der Beschreibungen auf den Seiten 8-9), aber ich bekomme weniger Vitriol von alias
, wenn ich folgendes benutze:
Nur eine Warnung jetzt:
%Vor%Schließlich habe ich einen Workaround gefunden. Im Grunde eine Menge Unsinn - ich behaupte immer noch, das ist ein Fehler. Aber hier geht es:
Fügen Sie Ihrem Paket einen Haufen nutzlosen Code hinzu. Seit ich diese Warnungen bekommen habe:
Suche nach Code- / Dokumentationsfehlern ... WARNUNG Funktionen oder Methoden mit Verwendung im Dokumentationsobjekt 'funchir-infix', aber nicht in Code:
%<unescaped bksl\>%
Überprüfung von Rd \ usage sections ... WARNUNG Objekte in \ usage ohne \ alias im Dokumentationsobjekt 'funchir-infix':
%<unescaped bksl>%
Funktionen mit \ usage-Einträgen müssen den entsprechenden \ alias haben Einträge und alle ihre Argumente dokumentiert. Die \ usage-Einträge müssen entsprechen dem syntaktisch gültigen R-Code. Siehe Kapitel 'Schreiben von R Dokumentationsdateien 'im Handbuch' Writing R Extensions '.
Ich habe meiner .R
-Datei (neben der Hauptfunktionsdefinition für Klarheit für alle 1 Personen, die meinen Quellcode durchgehen werden) folgendes hinzugefügt:
Und füge das zu meiner .Rd
Datei hinzu:
(Und usage{ A \%\\% B }
beibehalten, wie es ist).
Das heißt, geben Sie R CMD check
, wonach es verlangt, auch wenn es nur eine Verschwendung von Text ist.
Die Wolle hat genug über die Augen gezogen, mein Paket ist jetzt vollständig WARNING-frei B -)
Tags und Links r package-development