Juan Lewinger wrote:> Dear R list,
>
> I've read the function writing sections on both "An introduction
to R" and "R language Definition" manuals but still don't
understand why the following gives an error message:
>
> fun <- function(x, ...) x + y
> fun(1, y=2)
>
> I get:
>
> Error in fun(1, y = 2) : object "y" not found
>
> I'd appreciate any help in understanding this.
>
Putting it a bit sharply: The triple-dot mechanism is not a carte
blanche to introduce arbitrary variables into a function body. If it
did, then you could (intentionally or not) modify the behaviour of
functions in weird and mysterious ways.
As "y" is not among the formal argument names for "fun", it
will not be
found inside "...", to find it in there, you need to be more explicit,
as in x+list(...)$y.
> R version 2.4.1 (2006-12-18)
> i386-pc-mingw32
> ...
>
> Juan Pablo Lewinger
> Department of Preventive Medicine
> Keck School of Medicine
> University of Southern California
> 1540 Alcazar Street, CHP-220
> Los Angeles, CA 90089-9011, USA
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>
--
O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907