Quais convenções para nomear variáveis e funções você favorece no código R?
Pelo que eu posso dizer, existem várias convenções diferentes, todas as quais coexistem em uma harmonia cacofônica:
1. Uso de separador de ponto, por exemplo
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Prós: tem precedência histórica na comunidade R, predominante em todo o núcleo R e recomendado pelo Guia de estilo R do Google .
Contras: repleto de conotações orientadas a objetos e confuso para iniciantes R
2. Uso de sublinhados
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Prós: uma convenção comum em muitas linguagens de programação; preferido pelo Guia de Estilo de Hadley Wickham e usado nos pacotes ggplot2 e plyr.
Contras: historicamente não usado por programadores de R; é irritantemente mapeado para o operador '<-' no Emacs-Speaks-Statistics (alterável com 'ess-toggle-underscore').
3. Uso de capitalização mista (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Prós: parece ter ampla adoção em várias comunidades linguísticas.
Contras: tem precedente recente, mas não é usado historicamente (na base R ou em sua documentação).
Finalmente, como se não fosse confuso o suficiente, devo salientar que o Guia de Estilo do Google defende a notação de ponto para variáveis, mas capitalização mista para funções.
A falta de estilo consistente nos pacotes R é problemática em vários níveis. Do ponto de vista do desenvolvedor, torna difícil manter e estender o código de outros (especialmente onde seu estilo é inconsistente com o seu). Do ponto de vista do usuário R, a sintaxe inconsistente aumenta a curva de aprendizado de R, multiplicando as maneiras como um conceito pode ser expresso (por exemplo, essa função de conversão de data é asDate (), as.date () ou as_date ()? Não, é como. Encontro()).
ImfDataTransformed
ou a versão estendida natural IMFDataTransformed
não são tão fáceis de ler como o meu TOGGLEcamelCase preferido: IMFdataTransformed
...
alllowercase
nomes de variáveis, e abundância de nomes muito curtos retas-de-the-equação (x
,y
, etc.).