Quel est votre style préféré de nommage des variables dans R?

Dont les conventions de nommage des variables et des fonctions etes-vous en faveur de la R du code?

Aussi loin que je peux dire, il y a différentes conventions qui coexistent dans cacophonique harmonie:

1. L'utilisation de la période de séparateur, par exemple

  stock.prices <- c(12.01, 10.12)
  col.names    <- c('symbol','price')

Pour: A des précédents historiques dans le R de la communauté, répandue dans toute la R de base, et recommandé par Google R Guide de Style.

Contre: Rife avec un orientée objet, les connotations, et source de confusion pour R les débutants

2. L'utilisation de souligne

  stock_prices <- c(12.01, 10.12)
  col_names    <- c('symbol','price')

Pour: d'Une convention commune dans beaucoup de programmation langs; favorisée par Hadley Wickham du Guide de Style, et utilisé dans ggplot2 et plyr paquets.

Contre: Pas historiquement utilisé par les programmeurs R; est fâcheusement lié à '<-' opérateur en Emacs-Parle-Statistiques (modifiables avec "ess-bascule-underscore').

3. L'utilisation de mélanges de capitalisation (camelCase)

  stockPrices <- c(12.01, 10.12)
  colNames    <- c('symbol','price')

Pour: Semble avoir une large adoption dans plusieurs communautés de langue.

Contre: A précédent dans l'histoire récente, mais pas toujours utilisé (dans une autre R de base ou de sa documentation).

Enfin, comme si ce n'était pas assez déroutant, je me dois de souligner que le Google Guide de Style plaide pour la notation de point pour les variables, mais mixtes de capitalisation pour les fonctions.

Le manque de cohérence de style à travers les packages R est problématique à plusieurs niveaux. À partir d'un point de vue développeur, il rend le maintien et l'extension des autres code difficile (esp. où son style est incompatible avec votre propre). À partir d'un R point de vue utilisateur, le manque d'uniformité dans la syntaxe se R de la courbe d'apprentissage, en multipliant les moyens d'un concept peut être exprimé (p. ex. est-ce que la date de coulée fonction asDate(), comme.date(), ou as_date()? Non, c'est comme.Date()).

  • Il existe également des cas de MATLAB style alllowercase les noms de variables, et beaucoup de droite de l'équation noms très courts (x, y, etc.).
  • des traits de soulignement sont comme le python, j'ai donc tendance à utiliser des traits de soulignement. L'ESS doit être fixe, c'est vraiment idiot.
  • Il n'y a rien à corriger, il a une option pour ça. Mais le comportement par défaut est d'interpréter un trait de soulignement comme un raccourci pour <- vous permet d'économiser à la presse. Donc, si vous publiez des variables avec des traits de soulignement (Hi, Hadley) vous force à chaque ESS utilisateur à appuyer sur _ deux fois pour obtenir l'original bahaviour -- ou ont personnalisé leur ESS de l'installation. Je préfère encore camelCase par une nouvelle milles marins.
  • Concernant l'ESS et Emacs, vous pouvez désactiver ce comportement gênant en mettant ess-toggle-underscore nil) dans votre .emacs fichier. Espérons que cette aide.
  • camelCase a des problèmes aussi, par exemple, la norme de chameau Cas ImfDataTransformed ou le naturel de la version étendue IMFDataTransformed ne sont pas aussi facile à lire que mon préféré TOGGLEcamelCase: IMFdataTransformed...
  • Je vais voter pour fermer cette question hors-sujet parce que les réponses sont forcément opinion.
  • Comme un cas particulier, puisque caractère souligné (_) ne peut pas être utilisé dans la première lettre, la seule façon possible d'indiquer une variable interne est de placer un point (.) avant le nom (comme _name, ou __name en C/C++). Par exemple .name. Notez que les numéros ne pouvait pas être la deuxième lettre après un point (.) selon Faire un point de vue Syntaxique des Noms Valides. Reportez-vous à stackoverflow.com/a/38448219/2101864 pour les variables internes.

InformationsquelleAutor medriscoll | 2009-12-22