zip*_*ipp 15 r nomenclature dplyr data.table
我的问题可能听起来很愚蠢,但我注意到.
并%
经常使用R
并坦率地说我不知道为什么使用它.
我已经看到了dplyr
(去这里作为例子)和data.table
(即.SD
),但我相信它也必须在其他地方使用.
因此,我的问题是:
.
意思?它是某种R
编码最佳实践术语吗?(即_functionName
通常用于javascript
表示它是私人功能).如果是,那么规则是什么?%
,这也常常R中使用(即%in%
,%>%
,...).我的猜测始终一直是.
和%
是一种方便的方式来快速调用功能,但方式data.table
使用.
不遵循这个逻辑,这混淆了我.
MrF*_*ick 25
.
在R中没有固有的/神奇的含义.它只是你可以在符号名称中使用的另一个角色.但是因为键入它很方便,所以R中的某些函数和约定赋予它特殊的含义.这里只是几个
.
用于查找S3泛型方法实现.例如,如果您调用类似于plot
对象的泛型函数lm
作为第一个参数,那么它将查找名为的函数plot.lm
,如果找到,则调用该函数..
在公式中表示"所有其他变量",例如lm(y~., data=dd)
将对y
data.frame中的所有其他变量进行回归dd
.dplyr
使用它作为一个特殊的变量名来指示当前的data.frame方法do()
.他们可以很容易地选择使用的变量名X
,而不是bquote
的使用.()
作为一个特殊的功能,以逃避表达式变量ls()
除非您调用ls(all.names=TRUE)
(类似于UNIX文件系统行为),否则不会显示但是,您也可以只定义一个名为的变量my.awesome.variable<-42
,它将像任何其他变量一样工作.
A %
本身并不意味着什么特别,但R允许您%<something>%
使用两个百分号在表单中定义自己的中缀运算符.如果你定义
`%myfun%` <- function(a,b) {
a*3-b*2
}
Run Code Online (Sandbox Code Playgroud)
你可以称之为
5 %myfun% 2
# [1] 11
Run Code Online (Sandbox Code Playgroud)
Mic*_*ico 12
MrFlick的答案不包括.
in 的用法data.table
;
在data.table
,.
(基本上)是一个别名list
,所以任何*调用[.data.table
接受a list
也可以传递一个包装的对象.()
.
所以以下是等价的:
DT[ , .(x, y)]
DT[ , list(x, y)]
Run Code Online (Sandbox Code Playgroud)
嗯,不太好.任何在j论证中的用法,是的; 其他地方正在进行中,请看这里.
归档时间: |
|
查看次数: |
3693 次 |
最近记录: |