# dots

##### …, `..1`

, etc used in Functions

`…`

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(...)`

).

- Keywords
- programming, documentation

##### Usage

```
...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

`library(base)`

```
# NOT RUN {
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!
# }
```

*Documentation reproduced from package base, version 3.6.0, License: Part of R 3.6.0*