Difference Function in R – diff()

Difference function in R -diff() returns suitably lagged and iterated differences. diff() function takes either vector or dataframe as input along with lag and calculates the difference. Here we also look at an example of how to find the difference of a column in a dataframe in R using diff function.

  • Difference of a vector at lag 1 and lag 2 using diff() function in R
  • Difference of a column in dataframe using diff() function.

Syntax for difference function in R:

diff(x, lag = 1, differences = 1)
  • x – numeric vector
  • lag-an integer indicating how many lags to use.
  • Difference- order of difference

Pictographic Representation of difference function

LAG 1 & Diff 1

Diff function in R 11a

LAG 2 & Diff 1:

Diff function in R 11b

 

Example of difference function in R with lag 1:

#difference function in R
diff(c(2,3,5,18,4,6,4),lag=1)

diff() with lag=1 calculates difference between 2nd element and 1st element and then difference between 3rd element and 2nd element and so on. So the output will be

output:

[1]  1   2  13  -14   2  -2

 

Example of difference function in R with lag 2:

#difference function in R with lag=2
diff(c(2,3,5,18,4,6,4),lag=2)

diff() with lag=2 calculates difference between 3rd element and 1st element and then difference between 4th element and 2nd element and so on. So the output will be

output:

[1]   3   15   -1   -12    0

 

Example of difference function with lag 1 and differences 2:

#difference function in R with lag=1 and differences=2
diff(c(2,3,5,18,4,6,4),lag=1,differences=2)

First it is differenced with lag=1 and the result is again differenced with lag=1

r difference function in r

So the output will be

[1]   1  11  -27   16   -4

 

 

Difference of a column using diff() function

Difference of a column is accomplished using diff() function. First lets create the dataframe.

## Create dataframe

df = data.frame (NAME =c ('Alisa','Bobby','jodha','jack','raghu','Cathrine', 'Alisa','Bobby','kumar','Alisa','jack','Cathrine'), Age = c (26,24,26,22,23,24,26,24,22,26,22,25), Score =c(85,63,55,74,31,77,85,63,42,85,74,78)) 
df

so the created dataframe df will be.

Diff function in R 11

 

library(data.table)
DT = data.table(df)
DT[ , list(NAME,Age,Score,Age_Diff=diff(Age))  ]

First we convert the dataframe to data table and then use diff() function in R. diff() calculates difference between 2nd element and 1st element and then difference between 3rd element and 2nd element of “Age” column and so on. So the output will be

Diff function in R 12

previous small difference function in r                                                                                                           next small difference function in r