Data.table: R CMD check REMARQUE : Aucune liaison visible pour la variable globale

Créé le 2 oct. 2014  ·  3Commentaires  ·  Source: Rdatatable/data.table

Les packages utilisant data.table (et je crois aussi dplyr) obtiennent cette NOTE (peut-être plusieurs) de la vérification R CMD. Pouvons-nous faire quelque chose ? Ce n'est qu'une REMARQUE et peut donc être ignoré, mais quand même.

Fournissez peut-être une fonction qui détecte ces symboles et crée automatiquement l'appel globalVariables() pour l'auteur du package.

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, il faudrait une modification de 'R CMD check' pour le rendre conscient de "l'évaluation non standard" que data.table et dplyr utilisent. C'est un problème difficile (peut-être même impossible sans exécuter le code). Ainsi, les fonctions ?globalVariables ont été ajoutées à R dans 2.15.1 et moins connues, c'est peut-être que ?dontCheck a été ajouté dans R 3.1.0 qui peut être utilisé pour encapsuler des requêtes à l'aide de NSE. Celles-ci sont meilleures que <-NULL qui risquent de faire taire les vraies erreurs (ou peut-être d'en créer de nouvelles) dans d'autres zones du code, ainsi que celles utilisant NSE.

Commentaire le plus utile

@cderv vous pouvez simplement affecter NULL à la variable avant de l'utiliser (ne pas confondre avec la remplacer). Ainsi, vous ne définissez pas de variables globales, mais vous les définissez simplement localement dans une fonction où vous les utilisez. Je ne pense pas que nous ayons besoin d'aborder cela de façon particulière. Fermeture pour le moment car le problème attend depuis 2 ans sans points d'action définis, et n'est pas vraiment un problème data.table.

Tous les 3 commentaires

Ne peut pas nécessairement être ignoré; certains packages sont rejetés et les auteurs sont invités par le CRAN à utiliser globalVariables pour supprimer les NOTES. Par exemple:

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

Salut,
c'est un vieux problème mais pas clos. Je me demandais s'il y avait maintenant une nouvelle solution ?
Sinon, quelle est la bonne pratique à suivre ? toujours globalVariables ?

J'aime l'idée de

une fonction qui détecte ces symboles et crée le globalVariables()

Merci.

@cderv vous pouvez simplement affecter NULL à la variable avant de l'utiliser (ne pas confondre avec la remplacer). Ainsi, vous ne définissez pas de variables globales, mais vous les définissez simplement localement dans une fonction où vous les utilisez. Je ne pense pas que nous ayons besoin d'aborder cela de façon particulière. Fermeture pour le moment car le problème attend depuis 2 ans sans points d'action définis, et n'est pas vraiment un problème data.table.

Cette page vous a été utile?
0 / 5 - 0 notes