在 R 中使用 diff 函式

Manav Narula 2021年2月9日
在 R 中使用 diff 函式

計算元素之間的差異是一個基本操作。我們也可以很容易地計算出連續元素之間的差值,但對於龐大的資料集來說,手動實現這個功能,逐行計算效率不高。

在 R 程式設計中,diff() 可以計算向量的連續元素之間的差值,並將其傳遞給函式。最後的結果也是一個向量。比如說

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

在上面的例子中,你可以看到,diff() 函式返回連續元素之間的差值(3 - 5 = -2, 4 - 3 = 1,….)。另外,注意到結果向量少了一個元素,這是因為它不能計算最後一個元素的差值。

我們還可以在 diff() 函式中加入兩個引數。這兩個引數是 lagdifferences 引數。

lag 引數可以指定計算差值的元素之間的差距。預設為 1。當 lag 引數為 2 時,diff() 函式將計算第一個和第三個元素、第二個和第四個元素之間的差值,等等。下面的例子將使事情變得清晰起來。

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

differences 引數用來指定差值的順序。例如,我們將其設定為 2,那麼它將首先計算給定向量元素之間的差值,然後再次計算結果向量的連續元素的差值。下面的程式碼片段將解釋這一點。

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

我們也可以將這兩個引數同時設定為一些特定的值。例如,在下面的程式碼中,我們將 lag 設定為 2,將 differences 設定為 2。

diff(x, differences = 2, lag = 2)
[1]  5  6 -8 -7  1
作者: Manav Narula
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