逻辑运算符向量上的长短形式

时间:2014-02-15 22:52:44

标签: r syntax vectorization logical-operators

我在SO上阅读了许多关于逻辑运算符的短形式和长形式之间差异的帖子,但我需要一个明确的精度。

我读到了:

  

较长的表单从左到右计算仅检查每个向量的第一个元素。

然后,是这样的:

c(TRUE, TRUE) && c(TRUE, NA)

与此完全相同的操作:

(c(TRUE, TRUE) & c(TRUE, NA))[1]

逻辑&的结果在第一个矢量的第一个元素和第二个矢量的第一个元素之间?

如果这是正确的,那么返回逻辑运算符在每个向量的第一个元素之间返回的值的兴趣是什么?
我认为它不应该与矢量一起使用?

1 个答案:

答案 0 :(得分:2)

?'&&'为您提供了您想要更长形式的地方:

The longer form is appropriate for programming control-flow and typically
preferred in if clauses.

if只占一个值。不幸的是,如果向量超过长度1(&&确实发出警告),if不会发出警告,因此很难发现这样的错误。

实际上,您不应该将&&用于长度不是1的向量。