我最近看过这样的代码:
library(dplyr)
mtcars %.% mutate(carb_10 = carb %/% 10)
Run Code Online (Sandbox Code Playgroud)
还有这个....
mtcars %.% mutate(carb_10 = carb %% 10)
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释上面的代码中%/%和%%做了什么?
kus*_*hah 14
在R中:
在Python中,你可以通过简单地使用:%来做到这一点
在R中:
在 Python 中,您只需使用以下命令即可做到这一点://
从?"%%"帮助页面
%%表示x mod y并%/%表示整数除法.x == (x %% y) + y * ( x %/% y )除非y == 0,否则保证(最多为舍入误差),其中结果%%为NA_integer_或NaN(取决于参数的类型).
操作员可以获得帮助,但您必须先将它们转义,否则它们将按字面解释.
例如
?`%%`
Run Code Online (Sandbox Code Playgroud)
打开"算术"帮助页面,其中包括帮助两个%%和%/%以及+,*等您也可以访问该网页是这样的:
?Arithmetic
Run Code Online (Sandbox Code Playgroud)
您的IDE可能不知道需要引用运算符.实际上,帮助是"智能"的,并且可以在多次调度的调用上提供帮助,其中参数类型会影响实际执行的函数:
所以简单地引用所有文本并将其传递给帮助将无法正常工作.
返回引用运算符返回一个标准函数(不是字符串),这在其他情况下很有用,例如,找出它是如何工作的:
> `%\%`
function (e1, e2) .Primitive("%%")
Run Code Online (Sandbox Code Playgroud)
分配;
> add <- `%+%`
> `%MYADD%` <- add
> 1 %MYADD% 2
[1] 3
Run Code Online (Sandbox Code Playgroud)
或者将它提供给更高阶的函数,例如apply,Map,Reduce,do.call等.例如,这是我们如何重写'sum':
> Reduce(`+`,1:10,0)
[1] 55
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4005 次 |
| 最近记录: |