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

Peter Waltman waltman at cs.nyu.edu
Thu Jan 3 22:35:57 CET 2008


   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



More information about the R-help mailing list