创建排序列表的中点列表

sha*_*da 1 r vector sorted mean

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

a <- c(1,2,3,4)
Run Code Online (Sandbox Code Playgroud)

我想创建b它包含的中点(1,2),(2,3)并且(3,4):

b <- c(1.5, 2.5, 3.5)
Run Code Online (Sandbox Code Playgroud)

A5C*_*2T1 6

正如@Khashaa在评论中指出的那样,您可以在使用rowMeans后使用,embed或者您可以使用rollmean"zoo"包.

例:

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
Run Code Online (Sandbox Code Playgroud)

如果这些太模糊,类似的概念就是组合两个版本的向量,一个缺少第一个值,另一个缺少最后一个值,然后使用rowMeans.

例:

rowMeans(cbind(head(a, -1), tail(a, -1)))
# [1] 1.5 2.5 3.5
Run Code Online (Sandbox Code Playgroud)