【问题标题】:== gives strange result R [duplicate]== 给出奇怪的结果 R [重复]
【发布时间】:2020-08-12 11:38:28
【问题描述】:

我在 R 中尝试下面的代码,并期望两个条件语句给出相同的结果,但事实并非如此。请帮助理解这种行为。

> a
[1] 23 34 45 43
> b
[1] 45 34
> c
[1] 34 45
> a == b
[1] FALSE  TRUE  TRUE FALSE
> a == c
[1] FALSE FALSE FALSE FALSE

【问题讨论】:

  • 为什么您希望两个语句给出相同的结果?毕竟,您是在比较不同的值!
  • 您可能需要a %in% ba %in% c。如果你能说出你的期望会很有帮助
  • 嗨 Flick,我知道我们可以使用 %in% 但我只是想知道为什么结果不同。我希望它们都应该给出相同的结果,但循环重复响应可以解决我的查询。

标签: r data-science conditional-operator


【解决方案1】:

您的载体正在被“回收”。这意味着较短的向量正在通过重复自身来扩展,直到它与最长的长度相匹配。当您将两个或多个不同长度的向量进行比较(或进行其他类型的相关算术运算)时,就会发生这种情况。

所以,当你例如比较你的向量 ab

c(23, 34, 45, 43) == c(45, 34)

你实际上是在比较

c(23, 34, 45, 43) == c(45, 34, 45, 34)

这是:

# [1] FALSE  TRUE  TRUE FALSE

【讨论】:

    【解决方案2】:

    请注意,bca 短。当你运行a==b 时,R 会以循环的方式将b 的长度调整为与a 相同,比如c(23,34,45,43) == c(45,34,45,34),这会给出你所看到的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      • 2012-12-24
      • 2014-02-23
      • 2013-08-20
      • 2019-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多