是否有與diff()類似的功能,它將連續的元素分開而不是找到差異?將下一個向量的每個元素除以
x = c(10,8,4,-1)
some_function(x)
# [1] 1.25 2.00 -4.00
是否有與diff()類似的功能,它將連續的元素分開而不是找到差異?將下一個向量的每個元素除以
x = c(10,8,4,-1)
some_function(x)
# [1] 1.25 2.00 -4.00
我不認爲有這樣的事情提供基礎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]
與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
讚賞,但同樣,爲什麼建立自己的時候有一個可能提供? –
這裏我不打擾一個明確的循環,例如tail(x,-1)/ head(x,-1)',或者直接用'['進行索引。 – joran