Jakie konwencje nazewnictwa zmiennych i funkcji preferujesz w kodzie R?
O ile wiem, istnieje kilka różnych konwencji, z których wszystkie współistnieją w kakofonicznej harmonii:
1. Stosowanie separatora okresów, np
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Plusy: Ma historyczną pierwszeństwo we wspólnocie R rozpowszechnionych w całym rdzeniu R, a zalecaną przez Google R Style Guide .
Wady: Rife z konotacjami zorientowanymi obiektowo i dezorientująca dla początkujących
2. Stosowanie podkreśleń
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Zalety: wspólna konwencja w wielu językach programowania; ulubiony przez Hadley Wickham's Style Guide i używany w pakietach ggplot2 i plyr.
Wady: nie był historycznie używany przez programistów języka R; jest irytująco odwzorowany na operator '<-' w Emacs-Speaks-Statistics (zmienny za pomocą 'ess-toggle-underscore').
3. Stosowanie mieszanej wielkości liter (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Zalety: wydaje się być szeroko stosowany w kilku społecznościach językowych.
Wady: ma niedawny precedens, ale nie był używany historycznie (ani w bazie R, ani w dokumentacji).
Na koniec, jakby to nie było wystarczająco zagmatwane, powinienem zwrócić uwagę, że Przewodnik po stylach Google przemawia za notacją kropkową dla zmiennych, ale mieszaną wielkością liter dla funkcji.
Brak spójnego stylu we wszystkich pakietach języka R jest problematyczny na kilku poziomach. Z punktu widzenia programisty utrudnia to utrzymywanie i rozszerzanie cudzego kodu (zwłaszcza gdy jego styl jest niezgodny z Twoim własnym). Z punktu widzenia użytkownika języka R niespójna składnia powoduje stromość krzywej uczenia się języka R, mnożąc sposoby wyrażania koncepcji (np. Czy funkcja rzutowania dat jest asDate (), as.date () lub as_date ()? Data()).
ImfDataTransformed
lub naturalna rozszerzona wersja IMFDataTransformed
nie są tak łatwe do odczytania, jak mój ulubiony TOGGLEcamelCase: IMFdataTransformed
...
alllowercase
nazw zmiennych, i mnóstwo prostych-z-równaniu (bardzo krótkich nazwx
,y
etc.).