Hi,

Given what Hadley said, it looks like you don't need either one.  In
any case the logic was this:

ls() gets the NAMES of the objects
save() gets the actual data

Suppose in your workspace you define:

y <- "Hello, from the Global Environment"

and then you used that little function I showed, that defines:

y <- 5 * x + x^2

ls() will only give you the name "y", you still want save() to get the
values from the right environment.

Cheers,

Josh

On Thu, Oct 14, 2010 at 10:18 AM, Megh Dal <megh700...@yahoo.com> wrote:
> Thanks Joshua for your reply. However I could not understand one logic. If I 
> write "ls(envir = environment(), all.names = TRUE)", I am actually telling R 
> to grab all objects within the current environment (in  my case, which the 
> environment within fn()). Then what is the point to put again the same 
> against "envir". By putting so, what I am going to tell R?
>
> Thanks,
>
> --- On Thu, 10/14/10, Joshua Wiley <jwiley.ps...@gmail.com> wrote:
>
>> From: Joshua Wiley <jwiley.ps...@gmail.com>
>> Subject: Re: [R] Query on save.image()
>> To: "Megh Dal" <megh700...@yahoo.com>
>> Cc: r-h...@stat.math.ethz.ch
>> Date: Thursday, October 14, 2010, 10:26 PM
>> Hi,
>>
>> I do not believe you can use the save.image() function in
>> this case.
>> save.image() is a wrapper for save() with defaults for the
>> global
>> environment (your workspace).  Try this instead, I
>> believe it does
>> what you are after:
>>
>> myfun <- function(x) {
>> y <- 5 * x + x^2
>> save(list = ls(envir = environment(), all.names = TRUE),
>>      file = "myfile.RData", envir =
>> environment())
>> }
>>
>> Notice that for both save() and ls() I used the
>> environment() function
>> to grab the current environment.  This should mean
>> that even if "y"
>> was defined globally, it would save a copy of the version
>> inside your
>> function.
>>
>> Hope that helps,
>>
>> Josh
>>
>>
>> On Thu, Oct 14, 2010 at 9:25 AM, Megh Dal <megh700...@yahoo.com>
>> wrote:
>> > Can anyone please tell me how can use save.image()
>> function if it is placed within a function (i.e. some level
>> up from the base level environment)? Here I experimented
>> with following codes:
>> >
>> >
>> > #rm(list=ls())
>> > fn <- function() {
>> >    x <- rnorm(5)
>> >    save.image("f:/dat.RData")
>> >  }
>> > fn()
>> >
>> > However I see that, the object fn() is actually stored
>> in dat.RData file, not that "x". I have gone through the
>> help page and saw there is some argument named "envir"
>> > My question is if I need to supply some value against
>> that argument, then what should be the name of the required
>> environment?
>> >
>> > Additionally is there any option to see the hierarchy
>> of different environments at my current R session?
>> >
>> > Thanks,
>> >
>> > ______________________________________________
>> > R-help@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.
>> >
>>
>>
>>
>> --
>> Joshua Wiley
>> Ph.D. Student, Health Psychology
>> University of California, Los Angeles
>> http://www.joshuawiley.com/
>>
>
>
>
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/

______________________________________________
R-help@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.

Reply via email to