[R] 'text' can't find "x"

Thomas Lumley tlumley at u.washington.edu
Thu Oct 17 19:45:50 CEST 2002


On Thu, 17 Oct 2002, [iso-8859-1] Göran Broström wrote:

>
> With the default value of 'labels':
>
> >  text(x = c(1, 2), y = 5, labels = seq(along = x))
> Error in seq(along = x) : Object "x" not found
>
> A scoping bug? :)
>
> But
>
> >  text(x = c(1, 2), y = 5)
>
> is OK. Doesn't give the labels I want, though. But why does it work, i.e.,
> why is 'x' found in this case and not when I write out the default?
>

Explicit arguments are evaluated in the calling environment and the value
is passed to the function.  Default arguments are evaluated inside the
function,  so that defaults like seq(along=x) work.

Evaluating explicit arguments inside the function would be a Really Bad
Idea, as you would need to know what variables existed inside the
function.

	-thomas


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list