diff() 计算指定滞后向量中值之间的差异。
是否有适用于两个向量的等效函数?例如,我有:
v1 = c(1, 2, 3, 4, 5, 3)
v2 = c(5, 4, 3, 2, 1, 0)
我需要计算滞后 1 处 v1 和 v2 的每个值之间的差异。那将是:
(2 - 5), (3 - 4), (4 - 3)...
这可以通过在 2 个向量上使用 head()/tails() 组合来实现,但我想知道是否已经有一个函数可以做到这一点。
最佳答案
我不知道要执行此操作的基本功能,但正如gsk3指出的那样,taRifx软件包具有此功能。我建议不要调用程序包来执行以下简单操作:您可以执行以下操作:
v1[-1] - v2[-length(v2)]
或编写自己的函数以存储在.Rprofile中
shift.diff <- function(x, y) x[-1] - y[-length(y)]
shift.diff(v1, v2)
关于替换多列的diff(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9946116/