Quali convenzioni per la denominazione di variabili e funzioni preferisci nel codice R?
Per quanto ne so, ci sono diverse convenzioni differenti, che coesistono in cacofonica armonia:
1. Uso del separatore di periodo, ad es
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Pro: ha la precedenza storica nella comunità R, prevalente in tutto il core R e consigliato dalla R Style Guide di Google .
Contro: Rife con connotazioni orientate agli oggetti e confuso per i neofiti R.
2. Uso di trattini bassi
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Pro: una convenzione comune in molte lingue di programmazione; favorito dalla Style Guide di Hadley Wickham e utilizzato nei pacchetti ggplot2 e plyr.
Contro: non storicamente utilizzato dai programmatori R; è fastidiosamente mappato all'operatore '<-' in Emacs-Speaks-Statistics (modificabile con 'ess-toggle-underscore').
3. Uso di lettere maiuscole (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Pro: sembra avere un'ampia adozione in diverse comunità linguistiche.
Contro: ha un precedente recente, ma non storicamente utilizzato (né nella base R né nella sua documentazione).
Infine, come se non fosse abbastanza confuso, devo sottolineare che la Guida allo stile di Google sostiene la notazione a punti per le variabili, ma l'uso di lettere maiuscole per le funzioni.
La mancanza di uno stile coerente tra i pacchetti R è problematica a diversi livelli. Dal punto di vista dello sviluppatore, rende difficile mantenere ed estendere il codice altrui (specialmente quando il suo stile non è coerente con il tuo). Dal punto di vista dell'utente R, la sintassi incoerente rende più accentuata la curva di apprendimento di R, moltiplicando i modi in cui un concetto potrebbe essere espresso (ad esempio, la funzione di casting della data è asDate (), as.date () o as_date ()? No, è come. Data()).
ImfDataTransformed
o la versione estesa naturale IMFDataTransformed
non sono facili da leggere come il mio TOGGLE preferito camelCase: IMFdataTransformed
...
alllowercase
nomi delle variabili, e un sacco di nomi molto brevi rettilinei-from-the-equazione (x
,y
, ecc).