是否有diff()的类似函数,它将连续的元素分开而不是找到差异?
x = c(10,8,4,-1)
some_function(x)
# [1] 1.25 2.00 -4.00
答案 0 :(得分:2)
我不认为基础R中有类似的东西。但你可以尝试创建自己的解决方案,例如
unlist(sapply(2:length(x), function(i) x[i-1]/x[i]))
# unlist (sort of) takes care of when x has less than 2 elements
OR
x[-length(x)]/x[-1]
答案 1 :(得分:0)
dplyr
的另一个选项是使用lag
library(dplyr)
lag(x)/x
#[1] NA 1.25 2.00 -4.00
如果您要删除NA
,请执行
y = lag(x)/x
y[-1]
#[1] 1.25 2.00 -4.00