美文网首页
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