替换多列的diff()

Rob*_*ick 7 diff r zoo xts

diff()计算指定滞后的向量中值之间的差异.是否存在适用于两个向量的等效函数?例如,我有:

v1 = c(1, 2, 3, 4, 5, 3)
v2 = c(5, 4, 3, 2, 1, 0)
Run Code Online (Sandbox Code Playgroud)

我需要计算滞后1处v1和v2的每个值之间的差异.那将是:

(2 - 5), (3 - 4), (4 - 3)... 
Run Code Online (Sandbox Code Playgroud)

这可以通过在2个向量上使用head()/ tails()的组合来实现,但我想知道是否已经存在可以执行相同操作的函数.

Tyl*_*ker 9

我知道没有基本功能,但gsk3指出taRifx包具有此功能.我建议不要打电话给一个包来做一些简单的事情:你可以这样做:

v1[-1] - v2[-length(v2)]
Run Code Online (Sandbox Code Playgroud)

或者在.Rprofile中编写自己的存储功能

shift.diff <- function(x, y) x[-1] - y[-length(y)]
shift.diff(v1, v2)
Run Code Online (Sandbox Code Playgroud)