R での diff 関数の使用

Manav Narula 2021年1月23日
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,….)。また、結果として得られるベクトルの要素が 1つ少ないことにも注意してください。

また、関数 diff() に 2つのパラメータを追加することもできます。これらは lagdifferences パラメータです。

パラメータ lag は差分を計算する要素間のギャップを指定します。デフォルトでは 1 です。パラメータ lag が 2 の場合、関数 diff() は 1 番目と 3 番目の要素、2 番目と 4 番目の要素などの差分を計算します。以下の例を見れば一目瞭然です。

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