美文网首页
diff()函数---useR!

diff()函数---useR!

作者: 淡水鱼Ada | 来源:发表于2019-10-29 20:14 被阅读0次

diff(x, lag = 1, differences = 1)

  • x是numeric vector
  • lag是一个整数,表明相减的两项相距多元,即被减数距离减数多远。
  • difference: 连续执行多少次diff()函数。

这个函数有两个重要的参数lag和differences,需要特别注意一下。
看一下列子体会一下:

  • 例1:参数lag=1
diff(c(2,3,5,18,4,6,4),lag=1)
#[1] 1 2 13 -14 2 -2

参数lag=1的diff()函数是这样计算的:因为lag值为1,所以滞后一项,也就是说,相减的两项,位置相距1项,即后一项减前一项的值。
1- 第二项减去第一项的值,3-2=1
2-第三项减去第二项的值,5-3=2
3-第四项减去第三项的值,18-5
13
4-第五项减去第四项的值,4-18=-14
5-第六项减去第五项的值,6-4=2
6-第七项减去第六项的值,4-6=-2

  • 例2:参数lag=2
diff(c(2,3,5,18,4,6,4),lag=2)
#[1] 3 15 -1 -12 0

参数lag=1的diff()函数是这样计算的:因为lag值为2,所以滞后两项,也就是说,相减的两项位置相隔2。具体计算如下:
1- 第三项减去第一项的值,5-2=3
2-第四项减去第二项的值,18-3=15
3-第五项减去第三项的值,4-5
-1
4-第六项减去第四项的值,6-18=-12
5-第七项减去第五项的值,4-4=0

  • 例3:参数differences=2
diff(c(2,3,5,18,4,6,4),lag=1,differences=2)
#[1] 1 11 -27 16 -4

本例参数lag=1,differences=2,也就是说执行两次diff(x,lag=1),具体来说,首先计算diff(x,lag=1),以这个函数的结果作为下一次diff()函数中的x,再执行一遍diff(x,lag=1)


图3-1.png

从图3-1可以看到,首先计算一遍diff(x,lag=1),得到的值在表格第一行中;然后,再以这些值作为input=x,计算diff(x,lag=1),得到的结果在表格的第二行。

下面这个网站上有一个小练习:Calculate a difference of a series using diff()

diff()函数还可以用来计算导数

导数
x# a vector of x axis points
y# a vector of y axis points
#change in Y: diff(y)
#change in X: diff(x)
slope=diff(y)/diff(x)

相关文章

网友评论

      本文标题:diff()函数---useR!

      本文链接:https://www.haomeiwen.com/subject/ttygvctx.html