[R] Trying to learn how to write a function... can't define a variable??
Rui Barradas
ruipbarradas at sapo.pt
Fri Sep 7 21:16:30 CEST 2012
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 at 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.
More information about the R-help
mailing list