Data.table: R CMD-Prüfung HINWEIS: Keine sichtbare Bindung für globale Variable

Erstellt am 2. Okt. 2014  ·  3Kommentare  ·  Quelle: Rdatatable/data.table

Pakete, die data.table verwenden (und ich glaube auch dplyr), erhalten diesen HINWEIS (vielleicht viele) von R CMD check. Können wir etwas tun? Es ist nur ein HINWEIS, kann also ignoriert werden, aber trotzdem.

Stellen Sie vielleicht eine Funktion bereit, die diese Symbole erkennt und automatisch den globalVariables() -Aufruf für den Paketautor erstellt.

http://stackoverflow.com/questions/15409806/r-package-compilation-with-dependency-on-data-table
http://stackoverflow.com/questions/8096313/no-visible-binding-for-global-variable-note-in-r-cmd-check

IIUC, es wäre eine Änderung an 'R CMD check' erforderlich, um es auf die "Nicht-Standard-Evaluierung" aufmerksam zu machen, die sowohl data.table als auch dplyr verwenden. Das ist ein schwieriges Problem (vielleicht sogar unmöglich, ohne den Code auszuführen). Die Funktionen ?globalVariables wurden also in 2.15.1 zu R hinzugefügt, und weniger bekannt ist vielleicht, dass in R 3.1.0 ?dontCheck hinzugefügt wurde, das zum Umschließen von Abfragen mit NSE verwendet werden kann. Diese sind besser als <-NULL , was das Risiko birgt, echte Fehler in anderen Bereichen des Codes sowie in denen, die NSE verwenden, zum Schweigen zu bringen (oder möglicherweise neue zu erstellen).

Hilfreichster Kommentar

@cderv Sie können der Variablen einfach NULL zuweisen, bevor Sie sie verwenden (nicht mit Überschreiben verwechseln). Sie definieren also keine globalen Variablen, sondern nur lokal in einer Funktion, in der Sie sie verwenden. Ich glaube nicht, dass wir das in besonderer Weise ansprechen müssen. Vorerst geschlossen, da das Problem 2 Jahre ohne definierte Aktionspunkte wartet und nicht wirklich ein data.table-Problem ist.

Alle 3 Kommentare

Kann nicht unbedingt ignoriert werden; Einige Pakete werden abgelehnt und Autoren werden von CRAN angewiesen, globalVariables zu verwenden, um die NOTES zu unterdrücken. Z.B:

http://stackoverflow.com/questions/9439256/how-can-i-handle-r-cmd-check-no-visible-binding-for-global-variable-notes-when#comment20826625_12429344

Hallo,
Es ist ein altes Problem, aber nicht abgeschlossen. Ich wollte fragen ob es jetzt eine neue Lösung gibt?
Ansonsten, was ist die gute Praxis zu befolgen? immer noch globalVariables ?

Ich mag die Idee von

eine Funktion, die diese Symbole erkennt und das globalVariables() erstellt

Danke.

@cderv Sie können der Variablen einfach NULL zuweisen, bevor Sie sie verwenden (nicht mit Überschreiben verwechseln). Sie definieren also keine globalen Variablen, sondern nur lokal in einer Funktion, in der Sie sie verwenden. Ich glaube nicht, dass wir das in besonderer Weise ansprechen müssen. Vorerst geschlossen, da das Problem 2 Jahre ohne definierte Aktionspunkte wartet und nicht wirklich ein data.table-Problem ist.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen