Hello,
Start by (re-)reading An Introduction to R, file R-intro.pdf in your doc
directory. Chapter 10.
You're just computing, not returning the result of that computation. Nor
anything else, ADD() does not return a value. (See the example in
R-intro, section 10.1)
And you need to assign the return value to change the value of 'z'
_outside_ the function. R passes arguments by value, what happens inside
functions stays inside functions. (R-intro, section 10.5, first sentence.)
# Right way
z <- 1
ADD <- function(x){
x <- x + 1
x
}
ADD(z) # returns 2
z # still 1
z2 <- ADD(z)
z2 # equals 2
Hope this helps,
Rui Barradas
Em 07-09-2012 19:00, wwreith escreveu:
I am just starting to experiment with writing a function and have run into
what seems like a limitation or more likely a lack of understanding on my
part.
Very Simple Example: I want to define a function that does 1+1=2.
z<-1
ADD<-function(x)
{
x<-x+1
}
ADD(z)
z
output for z is 1 not the expected 2.
Now if I were to do print(x+1) instead of x<-x+1 it does return 2, so the
function seems ok with x+1, but not ok with x<-. Is there a way to define a
variable inside a function or am I violating some rule that I don't know
about?
Thanks for the help!
Will
--
View this message in context:
http://r.789695.n4.nabble.com/Trying-to-learn-how-to-write-a-function-can-t-define-a-variable-tp4642528.html
Sent from the R help mailing list archive at Nabble.com.
______________________________________________
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.
______________________________________________
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.