Usando la función de diff en R

Manav Narula 15 enero 2021
Usando la función de diff en R

El cálculo de la diferencia entre los elementos es una operación fundamental. También podemos calcular fácilmente la diferencia entre elementos consecutivos, pero para enormes conjuntos de datos que lo logran manualmente, línea por línea no es eficiente.

En la programación de R, el diff() calcula la diferencia entre elementos consecutivos del vector, que se pasa a la función. El resultado final es también un vector. Por ejemplo:

x <- c(5,3,4,3,8,9,4,8,1)
diff(x)
[1] -2  1 -1  5  1 -5  4 -7

Como puede ver en el ejemplo anterior, la función diff() devuelve la diferencia entre los elementos consecutivos (3 - 5 = -2, 4 - 3 = 1,….). También, note que el vector resultante tiene un elemento menos; esto se debe a que no puede calcular la diferencia del último elemento.

También podemos agregar dos parámetros a la función diff(). Estos son los parámetros lag y differences.

El parámetro lag puede especificar la brecha entre los elementos cuya diferencia se calcula. Es 1 por defecto. Cuando el parámetro lag es 2, la función diff() calculará la diferencia entre el primer y tercer elemento, el segundo y cuarto elemento, etc. El siguiente ejemplo aclarará las cosas:

diff(x, lag = 2)
[1] -1  0  4  6 -4 -1 -3

El parámetro differences se usa para especificar el orden de las diferencias. Por ejemplo, lo fijamos en 2; entonces primero calculará la diferencia entre los elementos vectoriales dados, luego volverá a calcular la diferencia de elementos consecutivos del vector resultante. El siguiente fragmento de código explicará esto:

diff(x)
[1] -2  1 -1  5  1 -5  4 -7
diff(x, differences = 2)
[1]   3  -2   6  -4  -6   9 -11

También podemos hacer que ambos parámetros se fijen en algún valor específico a la vez. Por ejemplo, en el código siguiente, hemos establecido el lag como 2 y las differences como 2.

diff(x, differences = 2, lag = 2)
[1]  5  6 -8 -7  1
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - R Math