Bird
Raised Fist0
R Programmingprogramming~20 mins

Function definition in R Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Function Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple function call
What is the output of the following R code?
R Programming
multiply_by_two <- function(x) {
  return(x * 2)
}

result <- multiply_by_two(5)
print(result)
A[1] 10
B[1] 7
CError in multiply_by_two(5) : could not find function "multiply_by_two"
D[1] 25
Attempts:
2 left
💡 Hint
Think about what the function does to the input number.
❓ Predict Output
intermediate
2:00remaining
Function with default argument
What will be printed when this R code runs?
R Programming
greet <- function(name = "Guest") {
  print(paste("Hello," , name))
}

greet()
greet("Alice")
A
[1] "Hello, Guest"
[1] "Hello, Alice"
B
[1] "Hello, "
[1] "Hello, Alice"
CError: object 'name' not found
D
[1] "Hello, Alice"
[1] "Hello, Guest"
Attempts:
2 left
💡 Hint
Check what happens when no argument is given.
❓ Predict Output
advanced
2:00remaining
Function with variable scope
What is the output of this R code?
R Programming
x <- 10

add_to_x <- function(y) {
  x <- 5
  return(x + y)
}

result <- add_to_x(3)
print(result)
print(x)
A
[1] 13
[1] 10
B
[1] 8
[1] 10
C
[1] 8
[1] 5
D
[1] 13
[1] 5
Attempts:
2 left
💡 Hint
Remember that variables inside functions have local scope.
❓ Predict Output
advanced
2:00remaining
Function with missing return statement
What will this R code print?
R Programming
sum_values <- function(a, b) {
  a + b
}

result <- sum_values(4, 6)
print(result)
AError: object 'result' not found
BNULL
C[1] 10
D[1] 46
Attempts:
2 left
💡 Hint
In R, the last expression is returned even without return().
🧠 Conceptual
expert
2:00remaining
Error type from incorrect function call
What error will this R code produce when run?
R Programming
my_function <- function(x, y) {
  return(x + y)
}

my_function(5)
ANo error, returns 5
BError in my_function(5) : object 'y' not found
CWarning: unused argument (5)
DError in my_function(5) : argument "y" is missing, with no default
Attempts:
2 left
💡 Hint
Check if all required arguments are provided.

Practice

(1/5)
1. What is the correct way to start defining a function named greet in R?
easy
A. greet <- function() { }
B. function greet() { }
C. def greet() { }
D. function <- greet() { }

Solution

  1. Step 1: Recognize R function syntax

    In R, functions are defined by assigning a function() to a name using <-.
  2. Step 2: Match the correct syntax

    greet <- function() { } uses the correct syntax: name <- function() { }.
  3. Final Answer:

    greet <- function() { } -> Option A
  4. Quick Check:

    Function definition = name <- function() [OK]
Hint: Use name <- function() to define functions in R [OK]
Common Mistakes:
  • Using def instead of function
  • Writing function name() without <-
  • Placing function keyword after name
2. Which of the following is the correct syntax to define a function add that takes two arguments x and y in R?
easy
A. function add(x, y) { x + y }
B. add(x, y) <- function { return x + y }
C. add <- function(x, y) { return(x + y) }
D. add <- function x, y { return(x + y) }

Solution

  1. Step 1: Check function definition format

    In R, arguments go inside parentheses after function keyword, and the body is inside braces.
  2. Step 2: Verify return statement and assignment

    add <- function(x, y) { return(x + y) } correctly assigns function with arguments and uses return() properly.
  3. Final Answer:

    add <- function(x, y) { return(x + y) } -> Option C
  4. Quick Check:

    Arguments inside function() and return() used [OK]
Hint: Put arguments inside function() parentheses [OK]
Common Mistakes:
  • Placing arguments outside function()
  • Missing braces {} around function body
  • Incorrect assignment syntax
3. What will be the output of the following R code?
multiply <- function(a, b) {
  result <- a * b
  return(result)
}
multiply(3, 4)
medium
A. 12
B. 7
C. 34
D. Error

Solution

  1. Step 1: Understand function behavior

    The function multiply takes two numbers and returns their product.
  2. Step 2: Calculate the product of 3 and 4

    3 * 4 equals 12, so the function returns 12.
  3. Final Answer:

    12 -> Option A
  4. Quick Check:

    3 * 4 = 12 [OK]
Hint: Multiply inputs and return result to get output [OK]
Common Mistakes:
  • Adding instead of multiplying
  • Concatenating numbers as strings
  • Forgetting to return the result
4. Identify the error in this R function definition:
sum_values <- function(x, y) 
  total <- x + y
  return(total)
}
medium
A. Function name is invalid
B. Missing opening brace { after function()
C. Incorrect use of return()
D. Arguments should be inside square brackets []

Solution

  1. Step 1: Check function body braces

    The function body must be enclosed in braces { } immediately after function() declaration.
  2. Step 2: Locate missing brace

    The code lacks an opening brace { after function(x, y), causing syntax error.
  3. Final Answer:

    Missing opening brace { after function() -> Option B
  4. Quick Check:

    Function body needs { } [OK]
Hint: Always put { after function() to start body [OK]
Common Mistakes:
  • Omitting braces around function body
  • Placing return outside function
  • Using wrong brackets for arguments
5. You want to write a function filter_positive that takes a numeric vector and returns only the positive numbers. Which function definition correctly does this in R?
hard
A. filter_positive <- function(vec) { return(vec[vec == 0]) }
B. filter_positive <- function(vec) { return(vec[vec < 0]) }
C. filter_positive <- function(vec) { vec > 0 }
D. filter_positive <- function(vec) { return(vec[vec > 0]) }

Solution

  1. Step 1: Understand filtering in R

    To get positive numbers, select elements where vec > 0.
  2. Step 2: Check return statement

    filter_positive <- function(vec) { return(vec[vec > 0]) } returns vec elements where condition vec > 0 is TRUE, correctly filtering positives.
  3. Final Answer:

    filter_positive <- function(vec) { return(vec[vec > 0]) } -> Option D
  4. Quick Check:

    Filter with vec[vec > 0] returns positives [OK]
Hint: Use vec[vec > 0] to filter positive numbers [OK]
Common Mistakes:
  • Using wrong comparison operator
  • Not returning filtered vector
  • Returning logical vector instead of values
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