[R] understanding the FUNCTION function
Rui Barradas
ruipbarradas at sapo.pt
Thu Apr 26 20:41:41 CEST 2012
Hello,
>
> gives you 120, but you cannot access it after the end of execution.
>
Because you're just printing the final value of 'a', not returning it.
fac <- function(x){
a <- 1
for(i in 1:x) a <- a*i
a
}
The return value must be the last instruction in a function.
Then, if you want, you can assign it to a variable that exists in the
environment the function was called from.
This is the usual practice, and it makes sense. Once a function is written
you don't have to worry with what
happens inside it. The caller's environment, it's variables, should not be
changed.
That's why '<<-' is not recommended. You might have variables with surprise
values.
Read, like said earlier, the R Inferno, Circle 6:
"What's so wrong about global assignments? Surprise.
Surprise in movies and novels is good. Surprise in computer code is
bad."
And download it.
http://www.burns-stat.com/pages/Tutor/R_inferno.pdf
Rui Barradas
--
View this message in context: http://r.789695.n4.nabble.com/Using-FUNCTION-to-create-usable-objects-tp4588681p4590617.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list