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 NAs).

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]