Bird
Raised Fist0
R Programmingprogramming~20 mins

Switch statement in R Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Switch Statement Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple switch statement
What is the output of this R code using switch?
R Programming
result <- switch("b", a = 1, b = 2, c = 3)
print(result)
ANULL
B[1] 2
C[1] 3
D[1] 1
Attempts:
2 left
💡 Hint
Remember that switch matches the first argument to the names.
❓ Predict Output
intermediate
2:00remaining
Switch with numeric index
What will this R code print?
R Programming
result <- switch(3, "apple", "banana", "cherry", "date")
print(result)
A[1] "cherry"
B[1] "banana"
C[1] "apple"
D[1] "date"
Attempts:
2 left
💡 Hint
When the first argument is a number, switch returns the element at that position.
🔧 Debug
advanced
2:00remaining
Error in switch with unnamed arguments
What error does this R code produce?
R Programming
result <- switch("x", "apple", "banana", "cherry")
print(result)
A[1] "apple"
BError in switch: EXPR must be a length 1 vector
CNULL
DError: no matching case found
Attempts:
2 left
💡 Hint
If the first argument is a string but no matching name exists, what does switch return?
❓ Predict Output
advanced
2:00remaining
Switch with expression and default
What is the output of this R code?
R Programming
x <- "z"
result <- switch(x, a = 10, b = 20, c = 30, 40)
print(result)
A[1] 40
B[1] 20
C[1] 30
D[1] 10
Attempts:
2 left
💡 Hint
If no named match is found, switch returns the last unnamed argument as default.
🧠 Conceptual
expert
2:00remaining
Behavior of switch with numeric zero
What happens when you run this R code?
R Programming
result <- switch(0, "apple", "banana", "cherry")
print(result)
A[1] "banana"
B[1] "apple"
C[1] "cherry"
DNULL
Attempts:
2 left
💡 Hint
Check how switch treats numeric indices outside the valid range.

Practice

(1/5)
1. What does the switch() function in R primarily do?
easy
A. Selects a value from multiple options based on a given expression
B. Repeats a block of code multiple times
C. Defines a new function
D. Creates a loop that runs until a condition is false

Solution

  1. Step 1: Understand the purpose of switch()

    The switch() function evaluates an expression and returns a value based on matching cases.
  2. Step 2: Compare with other options

    Options A, C, and D describe loops or function definitions, which are not the role of switch().
  3. Final Answer:

    Selects a value from multiple options based on a given expression -> Option A
  4. Quick Check:

    Switch chooses one option based on input [OK]
Hint: Switch picks one matching case value quickly [OK]
Common Mistakes:
  • Confusing switch with loops like for or while
  • Thinking switch defines functions
  • Missing the idea of selecting based on expression
2. Which of the following is the correct syntax to use switch() in R?
easy
A. switch(expression, case1 = value1, case2 = value2, default = value3)
B. switch { expression; case1: value1; case2: value2; default: value3 }
C. switch(expression) { case1 => value1; case2 => value2; default => value3 }
D. switch(expression, case1: value1, case2: value2, default: value3)

Solution

  1. Step 1: Recall R's switch syntax

    In R, switch() uses named arguments for cases like case1 = value1.
  2. Step 2: Check each option

    switch(expression, case1 = value1, case2 = value2, default = value3) matches R syntax. Options A, B, and C use syntax styles from other languages or incorrect separators.
  3. Final Answer:

    switch(expression, case1 = value1, case2 = value2, default = value3) -> Option A
  4. Quick Check:

    R switch uses named arguments with = [OK]
Hint: Use = for cases inside switch in R [OK]
Common Mistakes:
  • Using colon : instead of equals = for cases
  • Trying to use curly braces {} with switch
  • Confusing R syntax with other languages
3. What is the output of the following R code?
result <- switch("b", a = 10, b = 20, c = 30, 40)
print(result)
medium
A. 10
B. 20
C. 30
D. 40

Solution

  1. Step 1: Identify the switch expression and cases

    The expression is "b". The cases are a=10, b=20, c=30, and a default 40.
  2. Step 2: Match the expression to a case

    Since the expression matches case "b", the value 20 is returned.
  3. Final Answer:

    20 -> Option B
  4. Quick Check:

    Expression "b" matches case b = 20 [OK]
Hint: Match expression string to named case [OK]
Common Mistakes:
  • Choosing default value instead of matching case
  • Confusing case names with values
  • Forgetting switch returns matched case value
4. Identify the error in this R switch statement:
switch(2,
  1 = "one",
  2 = "two",
  3 = "three"
)
medium
A. Switch expression should be a string, not a number
B. Missing a default case
C. Incorrect use of commas between cases
D. Using numeric cases with = instead of unnamed cases

Solution

  1. Step 1: Understand switch with numeric expression in R

    When the expression is numeric, switch expects unnamed arguments, not named with =.
  2. Step 2: Check the code

    The code uses named cases like 1 = "one", which is invalid syntax for numeric switch.
  3. Final Answer:

    Using numeric cases with = instead of unnamed cases -> Option D
  4. Quick Check:

    Numeric switch uses unnamed cases, not named with = [OK]
Hint: Use unnamed cases for numeric switch, named for string [OK]
Common Mistakes:
  • Using = with numeric cases causes syntax error
  • Assuming default case is mandatory
  • Thinking switch expression must be string
5. You want to write a switch statement in R that returns "small", "medium", or "large" for numeric input 1, 2, or 3 respectively, and "unknown" for any other number. Which code correctly implements this?
hard
A. switch(as.character(x), '1' = "small", '2' = "medium", '3' = "large", "unknown")
B. switch(x, '1' = "small", '2' = "medium", '3' = "large", "unknown")
C. switch(x, "small", "medium", "large", "unknown")
D. switch(x, 1 = "small", 2 = "medium", 3 = "large", default = "unknown")

Solution

  1. Step 1: Understand switch behavior with numeric input

    For numeric input matching positions 1,2,3, use unnamed positional arguments, placing "unknown" as the 4th for other small numbers.
  2. Step 2: Analyze each option

    A, C use string literals like '1' = which cause syntax error (unexpected =). D uses numeric literals 1 = which cause syntax error (unexpected =). B uses unnamed arguments, correct for numeric positional matching.
  3. Final Answer:

    switch(x, "small", "medium", "large", "unknown") -> Option C
  4. Quick Check:

    Numeric switch uses unnamed positional args [OK]
Hint: Unnamed args for numeric switch positions [OK]
Common Mistakes:
  • Using numeric cases with = causes syntax error
  • Not providing a default value for unmatched cases
  • Mixing numeric expression with string case names
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