==给出奇怪的结果 R [重复]

问题描述 投票:0回答:2

我在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
r data-science conditional-operator
2个回答
2
投票

请注意 bc 短于 a. 当你运行 a==b,R将调整长度 b 一样 a 以循环的方式,说。c(23,34,45,43) == c(45,34,45,34)这就是你所看到的


2
投票

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

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

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

你其实是在比较

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

这就是:

# [1] FALSE  TRUE  TRUE FALSE
© www.soinside.com 2019 - 2024. All rights reserved.