创建排序列表的中点列表

时间:2015-05-01 08:09:36

标签: r vector mean sorted

我有一个数值的排序向量,我想创建一个包含所有对的中点的新向量。例如:

a <- c(1,2,3,4)

我想创建b,使其包含(1,2)(2,3)(3,4)的中点:

b <- c(1.5, 2.5, 3.5)

1 个答案:

答案 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