我不明白diff()R中的功能是什么.看这个例子:
temp = c(10,1,1,1,1,1,1,2,1,1,1,1,1,1,1,3,10)
diff(temp)
Run Code Online (Sandbox Code Playgroud)
上面的代码产生以下输出:
[1] -9 0 0 0 0 0 1 -1 0 0 0 0 0 0 2 7
Run Code Online (Sandbox Code Playgroud)
这个函数的定义是什么?
Sve*_*ein 71
该函数计算向量的所有连续值之间的差异.对于您的示例向量,差异是:
1 - 10 = -9
1 - 1 = 0
1 - 1 = 0
.
.
.
3 - 1 = 2
10 - 3 = 7
Run Code Online (Sandbox Code Playgroud)
参数differences允许您指定差异的顺序.
例如,命令
diff(temp, differences = 2)
[1] 9 0 0 0 0 1 -2 1 0 0 0 0 0 2 5
Run Code Online (Sandbox Code Playgroud)
产生与...相同的结果
diff(diff(temp))
[1] 9 0 0 0 0 1 -2 1 0 0 0 0 0 2 5
Run Code Online (Sandbox Code Playgroud)
因此,它返回差异的差异.
参数lag允许您指定滞后.
例如,如果lag = 2,计算第三和第一值之间,第四和第二值之间,第五和第三值之间的差等.
diff(temp, lag = 2)
[1] -9 0 0 0 0 1 0 -1 0 0 0 0 0 2 9
Run Code Online (Sandbox Code Playgroud)
NPE*_*NPE 19
它计算连续元素对之间的差异.
假设temp是对某些变量的观察,例如一小时内的温度读数.然后diff(temp)会告诉你每小时温度变化了多少.
相反的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
Run Code Online (Sandbox Code Playgroud)