House
House

Reputation: 305

Extracting objects defined within a function in R

I'm writing a function in R and I want to be able to call different objects from the function. I've got simple example of the problem I'm talking about (not the real code obviously).

example <- function(a,b){
  c <- a+b
  d <- a*b
  e <- a/b
  e
}

a <- 10
b <- 20

output <- example(a,b)
str(output)

output$c

My goal is for the last line to show the value of c defined in the function. In this code the only thing saved in output is the returned value, e.

I've tried changing the local and global environments, using <<- etc. That doesn't solve the problem though. Any help would be appreciated.

Upvotes: 1

Views: 52

Answers (1)

akrun
akrun

Reputation: 887148

We can return multiple output in a list and then extract the list element

example <- function(a,b){
   c <- a+b
   d <- a*b
   e <- a/b
   list(c=c, d= d, e = e)
}

a <- 10
b <- 20

output <- example(a,b)[['c']]
output
#[1] 30

example(a,b)[['d']]
#[1] 200

Upvotes: 3

Related Questions