Erhalte R CMD-Prüfung, um Backslashes zu verstehen

8

Ich schreibe ein Paket von Funktionen, die ich die ganze Zeit benutze, von denen eine im Grunde ein kurzer Wrapper für setdiff ist:

%Vor%

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:

%Vor%

Wenn ich R CMD check my_package_0.1.0.tar.gz starte, bekomme ich Warnungen:

%Vor%

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:

%Vor%

Nur eine Warnung jetzt:

%Vor%     
MichaelChirico 23.09.2015, 20:29
quelle

1 Antwort

3

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:

%Vor%

Und füge das zu meiner .Rd Datei hinzu:

%Vor%

(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 -)

    
MichaelChirico 25.09.2015, 03:16
quelle

Tags und Links