Functions in R: how to get your output
Once you begin using functions in R you will need to know a few things about returning values from functions. This article will cover how to return values, and how to return multiple values or objects from a function.
Return values
First of all, R will by default return the value from the last line of code in your function.
my_func <- function(x) {
y <- x + 2
y
}
In this case, my_func
will return the value of y
.
> my_func(2)
[1] 4
You can also use the return
function to immediately return a value and end the function execution. This might be necessary if your function has branching control. For example, consider the following function:
greater_than <- function(x, y) {
if(x > y) {
return("yes")
}
return("no")
}
The function greater_than
will return the string "yes"
immediately if x > y
evaluates to TRUE
. Otherwise, the if-statement will finish and "no"
will be returned.
It can be good practice to use a return
function even in the last line of a function and no other return
functions are used. Always strive to make your code as readable as possible.
How to return multiple values
Sometimes you will want to return multiple values from a function. But you can only return a single object from a function. The solution is to return an object like a vector or a list that contains all of the values you need.
my_list_func <- function() {
return(list(a = 1, b = "two"))
}
This function returns a list with two elements.
> new_list <- my_list_func()
> new_list
$a
[1] 1$b
[1] "two"
The elements of the list can be accessed by new_list$a
and new_list$b
. You can then use them as in the following code.
> new_list$a
[1] 1
> new_list$b
[1] "two"
I hope that helps you return exactly what you need from your functions in R.