On Dec 29, 2013, at 3:57 PM, andrewH wrote:
Dear David--
Thanks so much for your helpful reply!
David Winsemius wrote:
The LHS X becomes a name, the RHS X will be looked up in the calling
environment and fails if no value is positionally matched and then
no X is
found (at the time of the function definition.
Does X really have to exist when the function is defined?
No
I thought it was
enough if it existed in the environment of the calling function, or
somewhere up the environment chain of the calling function. If this
is not
true, then that means it matters a lot whether you write a function
inside
another function or just call it in that function. Suppose a
function with
a reflexive assignment X=X
Arrrgh. The is no "reflexive assignment". You are making up a concept.
is defined in the global environment but called
inside another function, and X has a different value in those two
places.
Will it look first in the global environment and only then in the
calling
environment? And is this different from the behavior without the
reflexive
assignment?
I should not bother you with those questions. I should just run it
both ways
and see what happens.calling function and will it look first in the
If you use`X <- value` in the argument list, then what is returned
is only
the value and the name `X` may be lost. Or in the case of data.frame
morphed
into a strange name:
[example omitted]
I am not sure that I am understanding you correctly here. Are you
saying
that assignment using the "=" retains the name (and other
attributes? which
ones?) of the RHS, while "<-" does not?
Using "=" assigns a name. Using "<-" retruns a value and whether the
value gets a name depends on the particular function.
> foo <- function(X <- V) { print(X)}
Error: unexpected assignment in "foo <- function(X <-"
> foo <- function(X = V) { print(X)}
> foo(4)
[1] 4
> foo <- function(X = V) { print(V)}
> foo(4)
Error in print(V) : object 'V' not found
--
David Winsemius, MD
Alameda, CA, USA
______________________________________________
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.