R language has a number of facilities for generating commonly used sequences of numbers. There are a number of functions for generating regular sequences in R to perform data analysis tasks:
- Colon Operator (
:
) seq()
Functionrep()
Function
Table of Contents
Generating Regular Sequences in R Language
Usually, the functions related to generating regular sequences in R are used to create index vectors, vectors of evenly spaced numbers, repeating the patterns, and creating sequences for plotting.
Colon Operator (:)
The colon operator generates a sequence of integers, for example, 1:30
is the vector c(1, 2, …, 29, 30). The colon operator has a high priority within an expression, for example, 2*1:15
is the vector c(2, 4, …, 28, 30).
Let set $n=10$ and then compare the sequences $1:n-1$ and $1:(n-1)$:
n = 10 1:n-1 1:(n-1)
The 30:1
may be used to generate a sequence backward.
30:1 ## Output [1] 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 [26] 5 4 3 2 1
The seq() Function
The seq()
functions offer more flexibility and control over generating sequences. The seq()
functions have five arguments, some of which may be specified in any call. The first two arguments of the function specify the beginning and end of the sequence.
Like other R functions, the arguments to seq()
can also given in named form, in which case the order in which they appear is irrelevant. The first two arguments of seq()
functions may be named from=value
and to=value
. Therefore seq(1, 30)
, seq(from = 1, to = 30)
and seq(to = 30, from = 1)
are all the same as 1:30
. The other two arguments may be named as by = value
and length = value
, which specify a step size and a length for the sequence, respectively. By default the by
argument is set to 1, that is, by = 1
. The examples of seq()
functions are
seq(1, 20) ## Output [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 seq(from = 1, to = 20) ## Output [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 seq(from = 1, to = 20, by = 1) ## OUtput [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 seq(-5, 5, by = 0.2) ## [1] -5.0 -4.8 -4.6 -4.4 -4.2 -4.0 -3.8 -3.6 -3.4 -3.2 -3.0 -2.8 -2.6 -2.4 -2.2 [16] -2.0 -1.8 -1.6 -1.4 -1.2 -1.0 -0.8 -0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 [31] 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 3.2 3.4 3.6 3.8 [46] 4.0 4.2 4.4 4.6 4.8 5.0 seq(length = 51, from = -5, by = 0.2)
Note that if only the first two arguments are given the result is the same as the colon operator. For example, seq(2, 10)
results in the same output as 2:10
.
The length.out
argument may be used to generate a sequence of evenly spaced numbers, for example,
# generate a sequence of evenly spaced numbers between 0 and 1 seq(from = 0, to = 1, length.out = 11) ## Output [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
The fifth argument may be named along = vector
, which is normally used as the only argument to create the sequence 1,2, …., length(vector) or the empty sequence if the vector is empty. For example
x = rnorm(10) seq(along = x) ## Output [1] 1 2 3 4 5 6 7 8 9 10
The rep() Function
The rep function is used for replicating or repeating an object in various complicated ways. The simplest form of the rep()
function is
rep(1:5, times = 5) ## Output [1] 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
The rep(1:5, times = 5)
will put five copies of 1:5
end-to-end. The other useful version of rep()
function is
rep(1:5, each = 5) ## Output [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5
The rep(1:5, each = 5)
repeats each element of 1:5
five times before moving on to the next number.