34

diff()Rの関数が何をするのかわかりません。この例を参照してください。

 temp = c(10,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,10)
 diff(temp)

上記のコードは、次の出力を生成します。

 [1] -9  0  0  0  0  0  1 -1  0  0  0  0  0  0  2  7

この関数の定義は何ですか?

4

2 に答える 2

81

この関数は、ベクトルのすべての連続する値の差を計算します。サンプルベクトルの場合、違いは次のとおりです。

 1 - 10 = -9
 1 -  1 =  0
 1 -  1 =  0
.
.
.
 3 -  1 =  2
10 -  3 =  7

引数differencesを使用すると、違いの順序を指定できます。

例:コマンド

diff(temp, differences = 2) 
[1]  9  0  0  0  0  1 -2  1  0  0  0  0  0  2  5

と同じ結果を生成します

diff(diff(temp))
[1]  9  0  0  0  0  1 -2  1  0  0  0  0  0  2  5

したがって、差分の差分を返します。


引数lagを使用すると、ラグを指定できます。

たとえば、の場合lag = 2、3番目と1番目の値の間、4番目と2番目の値の間、5番目と3番目の値の間などの差が計算されます。

diff(temp, lag = 2)
[1] -9  0  0  0  0  1  0 -1  0  0  0  0  0  2  9
于 2012-12-17T09:48:02.907 に答える
20

連続する要素のペア間の差を計算します。

たとえば、1時間に取得された温度の読み取り値など、いくつかtempの変数の観測値があるとします。次にdiff(temp)、1時間ごとに温度がどの程度変化したかを示します。

の反対diff()cumsum()(累積合計)です:

> temp
 [1] 10  1  1  1  1  1  1  2  1  1  1  1  1  1  1  3 10
> cumsum(c(10, diff(temp)))
 [1] 10  1  1  1  1  1  1  2  1  1  1  1  1  1  1  3 10
于 2012-12-17T09:52:56.043 に答える