Thanks, Bill, I should have googled more carefully: http://stackoverflow.com/questions/9561053/assign-values-to-a-list-element-in-r
So, remove assign(nm, tmp, parent.frame()) and add txt <- paste( nm, '<-', tmp, sep='' ) eval( parse(text=txt), parent.frame() ) in `foo()` will do the trick. Bests Sören > On 15.05.2015, at 00:02, William Dunlap <wdun...@tibco.com> wrote: > > You could use a 'replacement function' named 'bar<-', whose last argument > is called 'value', and use bar(variable) <- newValue where you currently > use foo(variable, newValue). > > bar <- function(x) { > x + 3 > } > `bar<-` <- function(x, value) { > bar(value) > } > > a <- NA > bar(a) <- 4 > a > # [1] 7 > b <- list(NA, NA) > bar(b[[1]]) <- 4 > b > #[[1]] > #[1] 7 > # > #[[2]] > #[1] NA > > > Bill Dunlap > TIBCO Software > wdunlap tibco.com > > On Thu, May 14, 2015 at 11:28 AM, <soeren.vo...@posteo.ch> wrote: > Hello, > > When I use function `foo` with list elements (example 2), it defines a new > object named `b[[1]]`, which is not what I want. How can I change the > function code to show the desired behaviour for all data structures passed to > the function? Or is there a more appropriate way to sort of "pass by > references" in a function? > > Thanks > Sören > > <src> > bar <- function(x) { > return( x + 3 ) > } > > foo <- function(x, value) { > nm <- deparse(substitute(x)) > tmp <- bar( value ) > assign(nm, tmp, parent.frame()) > } > > # 1) > a <- NA > foo(a, 4) > a # 7, fine :-) > > # 2) > b <- list(NA, NA) > foo(b[[1]], 4) # the first list item should be 7 > b # wanted 7 but still list with two NAs :-( > </src> > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.