Reputation: 2854
I'd like to return all objects that were assigned inside a function,
like so:
foo <- function() {
as <- LETTERS[1:3]
for(a in as) assign(a, sample(1000, 1))
return(as) # obviously not working
}
I know I maybe should wrap it in a list but can't get it to work...
Upvotes: 1
Views: 78
Reputation: 59970
I'd return it as a list as you suggest, and setNames
is kinda designed for this...
foo <- function( n ) {
as <- LETTERS[1:n]
setNames( replicate( n , sample( 1000 , 1 ) , simplify = FALSE ), as )
}
foo(3)
#$A
#[1] 286
#$B
#[1] 54
#$C
#[1] 791
Upvotes: 2