【问题标题】:What do %/% and %% mean?%/% 和 %% 是什么意思?
【发布时间】:2023-03-08 21:10:01
【问题描述】:

我最近看到过这样的代码:

library(dplyr)
mtcars %.% mutate(carb_10 =  carb %/% 10)

还有这个……

mtcars %.% mutate(carb_10 =  carb %% 10)

谁能解释一下 %/% 和 %% 在上面的代码中做了什么?

【问题讨论】:

  • 是的,help("%/%")
  • 用于显示帮助的常用键盘快捷键(分配给 control + H)在 %/% 上不起作用,所以我认为它没有帮助页面。但是我手动搜索确实弹出了帮助页面
  • 此外,使用“r [INSERT SEARCH TERM]”搜索 Google 通常效果很好。但是搜索 'r %/%' 和 'r %%' 没有返回任何相关信息。所以我尝试了两个常用的帮助渠道,但显然都没有提供关于 %/% 或 %% 含义的线索,让我别无选择,只能在这里发帖。
  • (我认为这个问题的 10 票反对意见过多。用户对上下文不走运。)

标签: r dplyr


【解决方案1】:

来自?"%%" 帮助页面

%% 表示 x mod y,%/% 表示整数除法。保证 x == (x %% y) + y * ( x %/% y )(直到舍入误差)除非 y == 0,其中 %% 的结果是 NA_integer_ 或 NaN(取决于参数的类型)。

【讨论】:

    【解决方案2】:

    对运算符有帮助,但你必须先将它们转义,否则它们会按字面意思解释。

    例如

    ?`%%`
    

    打开“算术”帮助页面,其中包括关于%%%/% 以及+* 等的帮助。您也可以这样访问该页面:

    ?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
    

    【讨论】:

      【解决方案3】:

      在 R 中:

      • %% 是模运算符
      • 示例:5 %% 3 将等于 2,因为它是 5 除以 3 得到的余数

      在python中,你可以简单地使用%

      • 5 % 3

      在 R 中:

      • %/% 是整数除法运算符
      • 示例:5 %/% 3 将等于 1,因为它是 5 除以 3 得到的商

      在 python 中,你可以简单地使用 //

      • 5 // 3

      【讨论】:

        【解决方案4】:
        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 ;
        

        【讨论】:

        • 请考虑在您的回答中解释这如何解决原始问题中所述的问题。
        猜你喜欢
        • 2023-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-12
        • 2017-06-11
        • 2018-03-05
        • 2023-03-27
        • 1970-01-01
        相关资源
        最近更新 更多