【问题标题】:Create a list of midpoints of a sorted list创建排序列表的中点列表
【发布时间】:2015-07-11 02:11:06
【问题描述】:

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

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

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

b <- c(1.5, 2.5, 3.5)

【问题讨论】:

  • rowMeans(embed(a, 2))zoo::rollmean(a, 2)
  • @Khashaa, embed 在众所周知的 R 函数列表中并不高,所以你为什么不发布答案而不是评论。
  • @AnandaMahto 我现在不在电脑旁。您可以将其发布为答案吗?

标签: r vector mean sorted


【解决方案1】:

如 cmets 中的@Khashaa 所示,您可以在使用embed 后使用rowMeans,也可以使用“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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-24
    • 2012-09-24
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多