我最近看过这样的代码:
library(dplyr)
mtcars %.% mutate(carb_10 = carb %/% 10)
这就是....
mtcars %.% mutate(carb_10 = carb %% 10)
有人可以解释上面代码中%/%和%%的作用吗?
答案 0 :(得分:6)
来自?"%%"
帮助页面
%%
表示x mod y,%/%
表示整数除法。保证x == (x %% y) + y * ( x %/% y )
(最多为舍入误差),除非y == 0,其中%%
的结果是NA_integer_或NaN(取决于参数的类型)。
答案 1 :(得分:5)
操作员可以使用帮助,但您必须先将它们转义,否则它们将按字面解释。
例如
?`%%`
打开“算术”帮助页面,其中包括%%
和%/%
以及+
,*
等的帮助。您还可以访问此页面这样:
?Arithmetic
您的IDE可能不知道需要引用运营商。事实上,帮助是“智能的”,并且可以提供有关多次调度调用的帮助,其中参数类型会影响实际执行的函数:
如此简单地引用所有文本并将其传递给帮助将无法正常工作。
返回引用操作符返回一个标准函数(不是字符串),这在其他情况下很有用,例如,找出它是如何工作的:
> `%\%`
function (e1, e2) .Primitive("%%")
分配;
> add <- `%+%`
> `%MYADD%` <- add
> 1 %MYADD% 2
[1] 3
或者将它提供给更高阶的函数,例如apply,Map,Reduce,do.call等。例如,这是我们如何重写'sum':
> Reduce(`+`,1:10,0)
[1] 55
答案 2 :(得分:1)
在 R 中:
在python中,你可以简单地使用%
在 R 中:
在python中,你可以简单地使用//
答案 3 :(得分:-2)
b <- c(1,2,3,4,5,6,7,8,9,10,11,12);
b[b %% 3 == 1]
#1/3=0...1 ; 4/3=1...1 ;7/3=2...1 ; ANS:1,4,7,10 ,remainder=1;
b[b %/% 3 == 1]
#3/3=1...0 ; 4/3=1...1 ;5/3=1...2 ; ANS:1,4,7,10 ,quotient =1 ;