dots: ..., '..1', etc used in Functions

Description Usage Arguments See Also Examples

Description

... and ..1, ..2 etc are used to refer to arguments passed down from a calling function. These (and the following) can only be used inside a function which has ... among it formal arguments.

...elt(n) is a functional way to get ..<n> and basically the same as eval(paste0("..", n)), just more elegant and efficient. Note that switch(n, ...) is very close, differing by returning NULL invisibly instead of an error when n is zero or too large.

...length() returns the number of expressions in .... This is the same as length(list(...)) but without evaluating the expressions in ... (which happens with list(...)).

Usage

1
2
...length()
...elt(n)

Arguments

n

a positive integer, not larger than the number of expressions in ..., which is the same as ...length() which is the same as length(list(...)), but the latter evaluates all expressions in ....

See Also

... and ..1, ..2 are reserved words in R, see Reserved.

For more, see the Introduction to R manual for usage of these syntactic elements, and dotsMethods for their use in formal (S4) methods.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
tst <- function(n, ...) ...elt(n)
tst(1, pi=pi*0:1, 2:4) ## [1] 0.000000 3.141593
tst(2, pi=pi*0:1, 2:4) ## [1] 2 3 4
try(tst(1)) # -> Error about '...' not containing an element.

tst.dl <- function(x, ...) ...length()
tst.dl(1:10)    # 0  (because the first argument is 'x')
tst.dl(4, 5)    # 1
tst.dl(4, 5, 6) # 2  namely '5, 6'
tst.dl(4, 5, 6, 7, sin(1:10), "foo"/"bar") # 5.  Note: no evaluation!