[R] Grouping commands so that variablas are removed automatically - like functions

Rainer M Krug Rainer at krugs.de
Mon Jan 20 14:51:59 CET 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1



On 01/20/14, 14:27 , jim holtman wrote:
> Check out the use of the 'local' function:

True - have completely forgotten the "local" function.

Thanks,

Rainer

> 
> 
>> gc()
> used (Mb) gc trigger (Mb) max used (Mb) Ncells 199420 10.7
> 407500 21.8   350000 18.7 Vcells 308004  2.4     786432  6.0
> 786424  6.0
>> result <- local({
> +     a <- rnorm(1000000)  # big objects +     b <- rnorm(1000000) 
> +     mean(a + b)  # return value + })
>> 
>> result
> [1] 0.0001819203
>> gc()
> used (Mb) gc trigger (Mb) max used (Mb) Ncells 199666 10.7
> 407500 21.8   350000 18.7 Vcells 308780  2.4    2975200 22.7
> 3710863 28.4
>> 
> 
> Jim Holtman Data Munger Guru
> 
> What is the problem that you are trying to solve? Tell me what you
> want to do, not how you want to do it.
> 
> 
> On Mon, Jan 20, 2014 at 8:12 AM, Rainer M Krug <Rainer at krugs.de>
> wrote: Hi
> 
> I would like to group commands, so that after a group of commands
> has been executed, the variables defined in that group are
> automatically deleted.
> 
> My reasoning: I have a longer sript which is used to load data, do 
> analysis and plot graphs, all part of a document (in org-mode / 
> emacs).
> 
> I have several datasets which are loaded, and each one is quite 
> big. So after doing one part of the job (e.g. analysing the data
> and storing the results) I want to delete all variables used to
> free space and to avoid having these variables being used in the
> next block and still having the old (for this block invalid)
> values.
> 
> I can't use rm(list=ls()) as I have some variables as "constants" 
> which do not change over the whole document and also some
> functions defined.
> 
> I could put each block in a function and then call the function
> and delete it afterwards, but this is as I see it abusing
> functions.
> 
> I don't want to keep track manually of the variables.
> 
> Therefore my question:
> 
> Can I do something like:
> 
> x <- 15
> 
> { #here begins the block a <- 1:100 b <- 4:400 } # here ends the
> block
> 
> # here are and b not defined anymore # but x is still defined
> 
> {} is great for grouping the commands, but the variables are not 
> deleted afterwards.
> 
> Am I missing a language feature in R?
> 
> Rainer
> 
>> 
>> ______________________________________________ 
>> 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.

- -- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Stellenbosch University
South Africa

Tel :       +33 - (0)9 53 10 27 44
Cell:       +33 - (0)6 85 62 59 98
Fax :       +33 - (0)9 58 10 27 44

Fax (D):    +49 - (0)3 21 21 25 22 44

email:      Rainer at krugs.de

Skype:      RMkrug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJS3Sn/AAoJENvXNx4PUvmC7uIIAIkXdCNVCA1sqJ7jqODTWbG9
OrDTkhRD/IyR//39sCj5YC79peLbPkpKtQgnmoj7jMoNg2euxmCn3wIGLigWhy2w
cyGqh/TocfRnYVKyQXz4LC/IqVFAi+W9ymyevVDA0vQ9RcEYILEsXxjxl06VhZhS
wzOHOiXXdHka8xswjChPJRjA/17LQaStLYeEIQbukz3WCj1wTY68b6YixqlSh/BZ
7C91EULBQtTqV5OetvfV9lulicw0XyWp+ZcNvEa72Y3jZw5DX0LloLcRuuGLZf3N
dxmnB7Uj4kBArjupgfGtkwZzT1d3UX0bb3vqPt0TRoeJCT04XnupbpdpwUOhJ8c=
=0zID
-----END PGP SIGNATURE-----




More information about the R-help mailing list