سؤال

I am getting a bit confused by the use of the short and long forms of logical operators in R.

If I have the following values

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

I would like to evaluate NOT(A) OR NOT(B) AND X < Y

I expect FALSE given the parameters

This is the expression I have found to evaluate this in R so it returns FALSE as I expect:

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

Can I eliminate the repeated X < Y comparison?

هل كانت مفيدة؟

المحلول

Do you mean:

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

?

نصائح أخرى

short form gives you a vector.
long form gives you a single value. compare:

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


   X && Y
   X & y

   x || y
   x | y

Another possibility:

!(A * B) && X < Y
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top