Re: [R] Suggestion on how to make permanent changes to a single object in a list?

From: Charilaos Skiadas <cskiadas_at_gmail.com>
Date: Thu, 3 Jan 2008 16:45:37 -0500

You might want to consider using the proto package. Otherwise, functions that end in <- have the ability to alter their arguments. Look at the following (admittedly not very natural) construct:

`fooModifier<-` <- function( foo, value ) {

     foo$bar <- "bar"
}

fooModifier( fooStack[[ 1 ]] ) <- NULL

 > fooStack
[[1]]
[1] "bar"

[[2]]
list()

[[3]]
list()

[[4]]
list()

[[5]]
list()

I agree, that it would be nice to be able to do this more easily. Haris Skiadas
Department of Mathematics and Computer Science Hanover College

On Jan 3, 2008, at 4:35 PM, Peter Waltman wrote:

>
> specifically, imagine we have:
>
> fooStack <- list()
> for ( i in 1:5 )
> fooStack[[i]] <- list()
>
> and we have a function:
>
> fooModifier <- function( foo ) {
>
> foo$bar <- "bar"
>
> }
>
> then, if we invoke fooModifier, i.e.:
>
> fooModifier( fooStack[[ 1 ]] )
>
> the $bar elt is only set in the scope of the function, and if we
> use the
> "<<-" modifier in fooModifier, R will throw an error b/c it
> can't find the
> "foo" object. I have to say that for someone coming from
> languages that
> have pointers and/or references, it's really frustrating that R
> fails to
> allow one to have direct access to the objects' memory space.
> Onyway, one workaround would be to pass in the whole fooStack
> object and the
> index of the elt that you want to modify to the fooModifier fn,
> but I'd
> rather not have to pass the whole thing in.
> Any suggestions?
> Thanks!
> Peter Waltman



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. Received on Thu 03 Jan 2008 - 21:48:36 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 03 Jan 2008 - 22:30:05 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive