Quelles conventions de nommage des variables et des fonctions préférez-vous dans le code R?
Pour autant que je sache, il existe plusieurs conventions différentes, qui coexistent toutes dans une harmonie cacophonique:
1. Utilisation du séparateur de périodes, par exemple
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Avantages: a une priorité historique dans la communauté R, répandue dans tout le noyau R et recommandée par le guide de style R de Google .
Inconvénients: regorge de connotations orientées objet et déroutant pour les débutants en R.
2. Utilisation de traits de soulignement
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Avantages: Une convention commune dans de nombreux langages de programmation; préféré par Hadley Wickham's Style Guide , et utilisé dans les packages ggplot2 et plyr.
Inconvénients: non utilisé historiquement par les programmeurs R; est mappé de manière ennuyeuse à l'opérateur '<-' dans Emacs-Speaks-Statistics (modifiable avec 'ess-toggle-underscore').
3. Utilisation de la capitalisation mixte (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Avantages: semble avoir une large adoption dans plusieurs communautés linguistiques.
Inconvénients: a un précédent récent, mais pas utilisé historiquement (dans la base R ou dans sa documentation).
Enfin, comme si ce n'était pas assez déroutant, je dois souligner que le Guide de style de Google plaide pour la notation par points pour les variables, mais une capitalisation mixte pour les fonctions.
Le manque de style cohérent entre les packages R est problématique à plusieurs niveaux. Du point de vue du développeur, cela rend difficile la maintenance et l'extension du code des autres (en particulier lorsque son style est incompatible avec le vôtre). Du point de vue de l'utilisateur R, la syntaxe incohérente accentue la courbe d'apprentissage de R, en multipliant les façons dont un concept pourrait être exprimé (par exemple, cette fonction de conversion de date est-elle asDate (), as.date () ou as_date ()? Non, c'est comme. Date()).
ImfDataTransformed
ou la version naturelle étendue IMFDataTransformed
ne sont pas aussi faciles à lire que mon TOGGLEcamelCase préféré: IMFdataTransformed
...
alllowercase
noms de variables, et beaucoup de droits-de-la-équation des noms très courts (x
,y
, etc.).