Какие соглашения об именах переменных и функциях вы предпочитаете в R-коде?
Насколько я могу судить, существует несколько разных конвенций, все из которых сосуществуют в какофонической гармонии:
1. Использование разделителя периодов, например
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Плюсы: имеет исторический приоритет в сообществе R, распространенный по всему ядру R, и рекомендуется Руководство по стилю Google R.
Минусы: Rife с объектно-ориентированными коннотациями и сбивает с толку R newbies
2. Использование символов подчеркивания
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Плюсы: общее соглашение во многих языках программирования; пользуется Hadley Wickham Style Guide и используется в пакетах ggplot2 и plyr.
Минусы: Исторически не используются программистами R; досадно отображается в оператор "<" в Emacs-Speaks-Statistics (изменяется с помощью "ess-toggle-underscore" ).
3. Использование смешанной капитализации (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Плюсы: Появляется широкое применение в нескольких языковых сообществах.
Минусы: имеет недавний прецедент, но не используется исторически (в базе R или в документации).
Наконец, как будто это не слишком запутывало, я должен указать, что в Руководстве по стилю Google аргументируется точечная нотация переменных, но смешанная капитализация для функций.
Отсутствие согласованного стиля в пакетах R проблематично на нескольких уровнях. С точки зрения разработчика, это затрудняет сохранение и расширение другого кода (например, его стиль несовместим с вашим собственным). С точки зрения пользователя R несогласованный синтаксис сглаживает кривую обучения R, умножая способы выражения концепции (например, это функция кадровой даты asDate(), as.date() или as_date()? Нет, это как. Date()).