Bird
Raised Fist0
R Programmingprogramming~5 mins

Logical operators (&, |, !, &&, ||) in R Programming - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the & operator do in R?
The & operator performs element-wise logical AND between two logical vectors. It compares each element and returns TRUE only if both elements are TRUE.
Click to reveal answer
intermediate
Explain the difference between & and && in R.
& works element-wise on vectors, comparing each element. && only checks the first element of each vector and returns a single TRUE or FALSE.
Click to reveal answer
beginner
What does the ! operator do in R?
The ! operator negates a logical value or vector. It changes TRUE to FALSE and FALSE to TRUE for each element.
Click to reveal answer
beginner
How does the | operator work in R?
The | operator performs element-wise logical OR between two logical vectors. It returns TRUE if at least one element in the pair is TRUE.
Click to reveal answer
intermediate
What is the difference between | and || in R?
| works element-wise on vectors, comparing each element. || only checks the first element of each vector and returns a single TRUE or FALSE.
Click to reveal answer
Which operator in R performs element-wise logical AND?
A|
B&
C&&
D||
What does the ! operator do in R?
ALogical NOT (negation)
BLogical AND
CLogical OR
DChecks first element only
Which operator checks only the first element of logical vectors in R?
A&&
B&
C|
D!
What is the result of TRUE | FALSE in R?
AFALSE
BError
CNA
DTRUE
Which operator performs element-wise logical OR in R?
A||
B&
C|
D&&
Describe the differences between & and && operators in R.
Think about how these operators behave with vectors.
You got /3 concepts.
    Explain how the ! operator works and give an example.
    Consider what happens when you apply it to a logical vector.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which logical operator in R checks every element of a vector and returns a vector of results?
      easy
      A. ==
      B. & and |
      C. !
      D. && and ||

      Solution

      1. Step 1: Understand vectorized logical operators

        In R, & and | operate element-wise on vectors, returning a vector of TRUE/FALSE values for each element.
      2. Step 2: Compare with single-element operators

        && and || only check the first element of the vectors and return a single TRUE/FALSE value.
      3. Final Answer:

        & and | -> Option B
      4. Quick Check:

        Element-wise operators = & and | [OK]
      Hint: Use & and | for vectors, && and || for single values [OK]
      Common Mistakes:
      • Confusing && and & as the same
      • Using || for vector comparisons
      • Thinking ! works on multiple elements like &
      2. Which of the following is the correct syntax to negate a logical vector v in R?
      easy
      A. !v
      B. not(v)
      C. ~v
      D. v != TRUE

      Solution

      1. Step 1: Identify the negation operator in R

        The logical NOT operator in R is !, which negates each element of a logical vector.
      2. Step 2: Check other options

        not() is not a base R function, ~ is a formula operator, and v != TRUE works but is less direct and less clear.
      3. Final Answer:

        !v -> Option A
      4. Quick Check:

        Negate vector with ! [OK]
      Hint: Use ! to flip TRUE/FALSE values in R [OK]
      Common Mistakes:
      • Using not() which is not a base R function
      • Confusing ~ with negation
      • Using != TRUE instead of !
      3. What is the output of the following R code?
      v1 <- c(TRUE, FALSE, TRUE)
      v2 <- c(FALSE, FALSE, TRUE)
      v1 & v2
      v1 && v2
      medium
      A. [1] TRUE TRUE TRUE [1] TRUE
      B. [1] TRUE FALSE TRUE [1] TRUE
      C. [1] FALSE FALSE FALSE [1] FALSE
      D. [1] FALSE FALSE TRUE [1] FALSE

      Solution

      1. Step 1: Evaluate element-wise AND with &

        v1 & v2 compares each element:
        TRUE & FALSE = FALSE
        FALSE & FALSE = FALSE
        TRUE & TRUE = TRUE
        Result: [FALSE FALSE TRUE]
      2. Step 2: Evaluate single-element AND with &&

        v1 && v2 checks only first elements:
        TRUE && FALSE = FALSE
        Result: [FALSE]
      3. Final Answer:

        [1] FALSE FALSE TRUE [1] FALSE -> Option D
      4. Quick Check:

        & compares all elements, && only first [OK]
      Hint: & works element-wise; && checks first element only [OK]
      Common Mistakes:
      • Thinking && works element-wise
      • Mixing up & and && results
      • Ignoring vector length in &&
      4. Identify the error in this R code snippet:
      v <- c(TRUE, FALSE, TRUE)
      if (v & TRUE) {
        print("Yes")
      } else {
        print("No")
      }
      medium
      A. Using & inside if condition causes error due to vector length
      B. Missing parentheses around v & TRUE
      C. Should use | instead of &
      D. No error, code runs fine

      Solution

      1. Step 1: Understand if condition requirements

        The if statement expects a single TRUE or FALSE value, not a vector.
      2. Step 2: Analyze v & TRUE

        v & TRUE returns a logical vector of length 3, which causes an error in if because it cannot handle multiple values.
      3. Final Answer:

        Using & inside if condition causes error due to vector length -> Option A
      4. Quick Check:

        if needs single TRUE/FALSE, & returns vector [OK]
      Hint: Use && in if conditions for single TRUE/FALSE [OK]
      Common Mistakes:
      • Using & instead of && in if
      • Assuming if accepts vector
      • Ignoring error message about length
      5. You have two logical vectors:
      a <- c(TRUE, FALSE, TRUE, FALSE)
      b <- c(FALSE, TRUE, TRUE, TRUE)

      Write an expression using logical operators to find elements where either a is TRUE and b is FALSE, or a is FALSE and b is TRUE. What is the resulting vector?
      hard
      A. a | b resulting in [TRUE TRUE TRUE TRUE]
      B. a & b resulting in [FALSE FALSE TRUE FALSE]
      C. (a & !b) | (!a & b) resulting in [TRUE TRUE FALSE TRUE]
      D. !(a | b) resulting in [FALSE FALSE FALSE FALSE]

      Solution

      1. Step 1: Understand the condition

        We want TRUE where exactly one of a or b is TRUE, but not both. This is the XOR condition.
      2. Step 2: Write expression and evaluate

        (a & !b) | (!a & b) checks where a is TRUE and b is FALSE, or vice versa.
        Evaluate:
        a: TRUE FALSE TRUE FALSE
        b: FALSE TRUE TRUE TRUE
        a & !b: TRUE FALSE FALSE FALSE
        !a & b: FALSE TRUE FALSE TRUE
        OR: TRUE TRUE FALSE TRUE
      3. Final Answer:

        (a & !b) | (!a & b) resulting in [TRUE TRUE FALSE TRUE] -> Option C
      4. Quick Check:

        XOR = (a & !b) | (!a & b) [OK]
      Hint: Use (a & !b) | (!a & b) for XOR logic [OK]
      Common Mistakes:
      • Using & or | alone instead of XOR logic
      • Forgetting to negate one vector
      • Confusing XOR with OR
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard