If you want to find the difference of elements in a sequence, instead of using a loop and calculating each difference, you can use the diff()
function. This article will show you more detail about the diff()
function to manipulate sequences.
What is the diff() function in R
The diff()
function calculates the difference between each pair of elements in a sequence or columns in a matrix and returns a new sequence/matrix that contains the results.
Syntax:
diff(sequence, lag, differences)
Argument:
sequence: A sequence of numbers
lag: Distance of index between 2 numbers. The default value is 1
differences: The number of times applying the function to the sequence. The default value is 1
How to use diff() function
In this part, we will give you a few examples of the usage of the function.
Calculate the differences in a sequence of numbers
First, we will take an example to see how the function works with a sequence.
Code:
# Declare a sequence of numbers mySeq = c(1, 5, 1, 3, 7, 2, 4, 4) # Calculate the differences in the sequence diffSeq = diff(mySeq) cat("The difference between each elements are:\n") print(diffSeq)
Result:
The difference between each element are:
[1] 4 -4 2 4 -5 2 0
The result shows the difference between two adjacent elements. For example, 4 = 5 – 1, 4 = 1 – 5, 2 = 3 – 1, etc.
Look at another example to understand the function deeply.
Code:
# Declare a sequence of numbers mySeq = c(1, 5, 1, 3, 7, 2, 4, 4) # Calculate the differences in the sequence diffSeq = diff(mySeq, lag = 3, differences = 2) cat("The difference between each elements are:\n") print(diffSeq)
Result:
The difference between each element are:
[1] -1 -5
In the example above, we find the difference between the ith element and the i+3 element, which is determined by the lag parameter. The ‘differences’ parameter tells the function to apply twice.
with lag = 3 and differences = 1, we get the result: 2 2 1 1 -3
When differences = 1, the function executes once more with the result sequence, and the final result is: -1, 5
Calculate the differences in a matrix
When applying the function to a matrix, the function considers each column of the matrix as a sequence.
Code:
# Declare a vector v = c(1, 5, 1, 3, 7, 2, 4, 4, 9) # Create a 3x3 matrix from the vector m = matrix(v, nrow = 3, ncol = 3) cat("The initial matrix is:\n") print(m) m = diff(m) cat("The matrix after applying the diff() function is:\n") print(m)
Result:
The initial matrix is:
[,1] [,2] [,3]
[1,] 1 3 4
[2,] 5 7 4
[3,] 1 2 9
The matrix after applying the diff() function is:
[,1] [,2] [,3]
[1,] 4 4 0
[2,] -4 -5 5
Summary
In summary, the diff()
function calculates the difference between a pair of elements in a sequence, while the ‘lag’ parameter can determine the index of two elements. If you want to use the function as a recursive, pass a value to the ‘differences’ parameter.
Leave a Reply