rep {base} | R Documentation

## Replicate Elements of Vectors and Lists

### Description

`rep` replicates the values in `x`. It is a generic function, and the default method is described here.

`rep.int` is a faster simplified version for the commonest case.

### Usage

    rep(x, times, ...)

    ## Default S3 method:
    rep(x, times, length.out, each, ...)

    rep.int(x, times)

### Arguments

`x` | a vector (of any mode including a list) or a pairlist or a `POSIXct` or `POSIXlt` object.
`times` | non-negative integer. A vector giving the number of times to repeat each element if of length `length(x)`, or to repeat the whole vector if of length 1.
`length.out` | integer. (Optional.) The desired length of the output vector.
`each` | optional integer. Each element of `x` is repeated `each` times.
`...` | further arguments to be passed to or from other methods.

### Details

If `times` consists of a single integer, the result consists of the values in `x` repeated this many times. If `times` is a vector of the same length as `x`, the result consists of `x[1]` repeated `times[1]` times, `x[2]` repeated `times[2]` times and so on.

`length.out` may be given in place of `times`, in which case `x` is repeated as many times as is necessary to create a vector of this length. If both `length.out` and `times` are specified, `times` determines the replication, and `length.out` can be used to truncate the output vector (or extend it by `NA`s).

Non-integer values of `times` will be truncated towards zero. If `times` is a computed quantity it is prudent to add a small fuzz.

### Value

A vector of the same class as `x`.

### Note

If the original vector has names, these are also replicated and so will almost always contain duplicates.

If `length.out` is used to extend the vector, the behaviour is different from that of S-PLUS, which recycles the existing vector.

Function `rep.int` is a simple case handled by internal code, and provided as a separate function purely for S compatibility.

### References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

### See Also

`seq`, `sequence`.

### Examples

    rep(1:4, 2)
    rep(1:4, each = 2)       # not the same.
    rep(1:4, c(2,2,2,2))     # same as second.
    rep(1:4, c(2,1,2,1))
    rep(1:4, each = 2, len = 4)  # first 4 only.
    rep(1:4, each = 2, len = 10)   # 8 integers plus two NAs

    rep(1, 40*(1-.8)) # length 7 on most platforms
    rep(1, 40*(1-.8)+1e-7) # better

    ## replicate a list
    fred <- list(happy = 1:10, name = "squash")
    rep(fred, 5)

    # date-time objects
    x <- .leap.seconds[1:3]
    rep(x, 2)
    rep(as.POSIXlt(x), rep(2, 3))

[Package Contents]