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)将对ydata.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 次 |
| 最近记录: |