Dieter Menne wrote:
Thomas Mang <thomas.mang <at> fiwi.at> writes:
I wonder if the following is possible in R:
Suppose a function takes an argument, and wants to modify this argument
so that the change is visible _at the call side_. It would be what is
for example known as pass-by-reference-to-non-const in C++.
test <- function(x)
{
x <- 10
...
return (somethingElse) # I do NOT want having to return x
}
number = 5
test(number)
stopifnot(number == 10)
Is there some trick with scoping rules and maybe <<- to achieve this ?
Yes, it is possible. No, don't do it (coming from the c++ world, I understand
your temptation). Try to look for "assign" to see the attached flames.
Hi,
Well the point is I really really want to do it - and believe me, I know
what I am doing ;) (for that matter, this is done solely in
implementation code - of course I wouldn't do such a thing in a publicly
used interface).
I know assign, and I suppose the trick is something to pass the name of
the variable at the call side, as well as the environment of the call
side, as additional argument to my test-function, so it knows what to
change where. Is that correct ? Is there some more short-hand / direct /
elegant way of achieving my goal ?
thanks,
Thomas
______________________________________________
R-help@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.