【问题标题】:In R, how does double percent work when used on a matrix?在 R 中,双百分比在矩阵上使用时如何工作?
【发布时间】:2016-02-17 06:14:42
【问题描述】:
    a <- data.frame(1:50)
    a %% 10==0

它以 10 为增量返回 TRUE,从 0 开始。

    a %% 10==2

这做同样的事情,但从 2 开始。

这种语法是如何工作的?作为操作员,我知道 %% 是什么,但我不明白在这种情况下发生了什么。

【问题讨论】:

标签: r syntax


【解决方案1】:

(希望我没有过度解释这一点并正确解释了您的要求:)

正如您所说,您知道%% 是模运算符。所以

a <- data.frame(1:50)
a %% 10

为框架中的每个项目(或 1、2、3、4、5、6、7、8、9、0 等)返回“x mod 10”

您给出的两个示例类似于if 语句的“速记”。在伪代码中:

for n = 1 to length of a
    if a[n] %% 10 equals zero 
      return true
    else 
      return false

所以a %% 10 == 0 是“元素 mod 10 是否等于 0”,a %% 10 == 2 是“元素 mod 10 是否等于 2”应用于每个元素

结果是逻辑矩阵(布尔值)。

【讨论】:

  • 我现在明白了。我从完全错误的角度看待语法。谢谢。
猜你喜欢
  • 2015-01-14
  • 2021-06-23
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
  • 2021-09-16
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多