逻辑运算符 - 短(关系)与长(向量)形式

时间:2013-03-14 16:04:07

标签: r comparison vectorization logical-operators relational

我对使用R中的短形式和长形式的逻辑运算符感到有些困惑。

如果我有以下值

A <- FALSE
B <- TRUE
X <- 3
Y <- 2

我想评估NOT(A) OR NOT(B) AND X&lt; ÿ

我希望FALSE给出参数

这是我在R中对此进行评估的表达式,因此它会像我预期的那样返回FALSE

!A & X < Y || !B & X < Y

我可以消除重复的X < Y比较吗?

3 个答案:

答案 0 :(得分:5)

你的意思是:

> (!A || !B) && X < Y
[1] FALSE

答案 1 :(得分:3)

简短形式为您提供矢量 long form为您提供单一值。 比较:

   x <- c(TRUE, TRUE, FALSE)
   y <- c(TRUE, FALSE, FALSE)


   X && Y
   X & y

   x || y
   x | y

答案 2 :(得分:1)

另一种可能性:

!(A * B) && X < Y