【发布时间】:2009-12-22 08:24:11
【问题描述】:
在 R 代码中,您喜欢哪些命名变量和函数的约定?
据我所知,有几种不同的约定,它们都和谐共存:
1.使用句号分隔符,例如
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
优点:在 R 社区中具有历史优先权,在整个 R 核心中普遍存在,并被 Google's R Style Guide 推荐。
缺点:充斥着面向对象的内涵,让 R 新手感到困惑
2。使用下划线
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
优点: 许多编程语言中的通用约定;受到Hadley Wickham's Style Guide 的青睐,并用于 ggplot2 和 plyr 包。
缺点: R 程序员历来不使用;烦人地映射到 Emacs-Speaks-Statistics 中的 '
3.使用混合大写 (camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
优点:似乎已在多个语言社区广泛采用。
缺点:最近有先例,但历史上没有使用过(在 R 基础或其文档中)。
最后,好像还不够混乱,我应该指出,Google 样式指南主张变量使用点表示法,但函数使用混合大写。
R 包之间缺乏一致的样式在多个层面上都是个问题。从开发人员的角度来看,它使维护和扩展其他人的代码变得困难(尤其是在其风格与您自己的不一致的情况下)。从 R 用户的角度来看,不一致的语法通过乘以可能表达概念的方式(例如,日期转换函数 asDate()、as.date() 还是 as_date()?不,它是 as。日期())。
【问题讨论】:
-
也有 MATLAB 风格的实例
alllowercase变量名称,以及大量直接来自方程的非常短的名称(x、y等)。 -
下划线就像python,所以我倾向于使用下划线。 ESS应该修好了,真的很傻。
-
没有什么可修复的,它有一个切换开关。但 默认行为 是将下划线解释为
-
camelCase 也有问题,例如标准驼峰案例
ImfDataTransformed或自然扩展版本IMFDataTransformed不像我喜欢的TOGGLEcamelCase 那样容易阅读:IMFdataTransformed... -
我投票决定将此问题作为题外话结束,因为答案必然是基于意见的。
标签: r coding-style naming-conventions