Generating Regular Sequences in R

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() Function
  • rep() Function

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)
Generating Regular Sequences in R Language

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.

Frequently Asked Questions About R, generating regular sequences in R

R Language Quiz

General Knowledge Quizzes

Statistics and Data Analysis