在 R 中使用 diff 函式
Manav Narula
2021年2月9日
計算元素之間的差異是一個基本操作。我們也可以很容易地計算出連續元素之間的差值,但對於龐大的資料集來說,手動實現這個功能,逐行計算效率不高。
在 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()
函式中加入兩個引數。這兩個引數是 lag
和 differences
引數。
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 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