R中的diff()函数做什么?

R中的diff()函数做什么?,r,R,我不理解R中的函数diff()的作用。请参见此示例: 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 此函数的定义是什么?此函数计算向量所有连续值之间的差值。对于示例向量,差异如下: 1 - 10 = -9 1 - 1 = 0 1 - 1 = 0 . . . 3 - 1 =

我不理解R中的函数
diff()
的作用。请参见此示例:

 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

此函数的定义是什么?

此函数计算向量所有连续值之间的差值。对于示例向量,差异如下:

 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
,则计算第三个值与第一个值之间、第四个值与第二个值之间、第五个值与第三个值之间的差值等

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

它计算连续元素对之间的差异

比如说,
temp
是对一些变量的观察,例如在一小时内获取的温度读数。然后,
diff(temp)
将告诉您每小时的温度变化量

diff()
相反的是
cumsum()
(累积和):


是的,但我无法理解它背后的概念。什么是应用程序,以及结果是如何计算的?参数“differences”有什么作用?@user1885733查看我答案的更新。@user1885733如果调用
diff(x)
而不使用参数
lag
differences
,则默认值(即1)将使用。这与
diff(x,lag=1,differences=1)
相同。另请参见
> 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