我有一个数值的排序向量,我想创建一个包含所有对的中点的新向量。例如:
a <- c(1,2,3,4)
我想创建b
,使其包含(1,2)
,(2,3)
和(3,4)
的中点:
b <- c(1.5, 2.5, 3.5)
答案 0 :(得分:6)
正如@Khashaa在评论中指出的那样,您可以在使用rowMeans
后使用embed
,也可以使用“zoo”包中的rollmean
。
示例:
a <- 1:4
rowMeans(embed(a, 2))
# [1] 1.5 2.5 3.5
library(zoo)
rollmean(a, 2)
# [1] 1.5 2.5 3.5
如果这些过于模糊,类似的概念就是组合两个版本的向量,一个缺少第一个值,另一个缺少最后一个值,然后使用rowMeans
。
示例:
rowMeans(cbind(head(a, -1), tail(a, -1)))
# [1] 1.5 2.5 3.5