[R] Deparse substitute assign with list elements
soeren.vogel at posteo.ch
soeren.vogel at posteo.ch
Thu May 14 20:28:27 CEST 2015
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>
More information about the R-help
mailing list