在R代码中,您喜欢命名变量和函数的约定?
据我所知,有几种不同的惯例,所有这些惯例都在喧嚣的和谐中共存:
1.期间分隔符的使用,例如
stock.prices <- c(12.01, 10.12)
col.names <- c('symbol','price')
Run Code Online (Sandbox Code Playgroud)
优点: 在R社区中具有历史优先权,在整个R核心中普遍存在,并且由Google的R风格指南推荐.
缺点: 充满了面向对象的内涵,让R新手感到困惑
2.使用下划线
stock_prices <- c(12.01, 10.12)
col_names <- c('symbol','price')
Run Code Online (Sandbox Code Playgroud)
优点: 许多编程语言中的常见惯例; 受到Hadley Wickham风格指南的青睐,并在ggplot2和plyr包中使用.
缺点: R程序员历史上没有使用过; 令人烦恼地映射到Emacs-Speaks-Statistics中的'< - '运算符(可以用'ess-toggle-underscore'改编).
3.混合资本化的使用(camelCase)
stockPrices <- c(12.01, 10.12)
colNames <- c('symbol','price')
Run Code Online (Sandbox Code Playgroud)
优点:似乎在多个语言社区得到广泛采用.
缺点:有最近的先例,但没有历史使用(在R基础或其文档中).
最后,好像它没有足够的混淆,我应该指出谷歌风格指南争论变量的点符号,但函数的混合大写.
R包中缺乏一致的样式在几个层面上存在问题.从开发人员的角度来看,它使维护和扩展其他代码变得困难(尤其是其风格与您自己的风格不一致).从R用户的角度来看,不一致的语法通过将概念表达的方式相乘来加深R的学习曲线(例如,日期转换函数asDate(),as.date()或as_date()?不,它就是.日期()).
在R中,我想转换
t1 <- c('this.text', 'next.text')
"this.text" "next.text"
Run Code Online (Sandbox Code Playgroud)
至
'ThisText' 'NextText'
Run Code Online (Sandbox Code Playgroud)
我试过了
gsub('\\..', '', t1)
Run Code Online (Sandbox Code Playgroud)
但这给了我
"thisext" "nextext"
Run Code Online (Sandbox Code Playgroud)
因为在这段时间之后它不会取代这封信.
可能真的很容易,但我无法解决.