Return as.list(environment()), e.g.
foo <- function(x=1) {
a <- 1;
b <- 2;
as.list(environment());
}
> foo()
$b
[1] 2
$a
[1] 1
$x
[1] 1
> a <- 2
> foo(x=2)
$b
[1] 2
$a
[1] 1
$x
[1] 2
> foo(x=4)
$b
[1] 2
$a
[1] 1
$x
[1] 4
See help("environment") for more information.
/Henrik
On Tue, Mar 29, 2011 at 2:37 PM, Sam Brown <s_d_j_brown at hotmail.com>
wrote:>
>
>
>
> Dear all
>
> I am trying to create a list of all objects created over the course of a
function. To wit:
>
> foo <- function(x){
> ? ?first <- x*(1:8)
> ? ?second <- matrix(x*(1:16), ncol = 4)
> ? ?third <- 1:x
> ? ?list(x=x, first=first, second=second, third=third)
> }
>
> foo(5)
>
> No worries there. However, in the search for typing efficiency I wondered
if it would be possible to use list(ls()) in the final line of the function.
Unfortunately, this doesn't work. dump(ls(), file="") almost
produces what I want, but not as a list. Are there any suggestions how I can
create a list of all objects without manually declaring each object?
>
> Thanks for any insight!
>
> Sam
>
>
>
> Samuel Brown
> Casual research assistant
> Bio-Protection Research Centre
> PO Box 84
> Lincoln University
> Lincoln 7647
> Canterbury
> New Zealand
> sam.brown at lincoln.ac.nz
> http://www.the-praise-of-insects.blogspot.com
> ? ? ? ?[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>