【问题标题】:R: Calculate the mean and variance of length N elements in a vector [duplicate]R:计算向量中长度N个元素的均值和方差[重复]
【发布时间】:2021-06-10 23:24:53
【问题描述】:

我是 R 新手。

我正在尝试计算向量的均值和方差。

但是,我不是简单地计算 整个 向量的均值和方差,而是尝试计算每个“10 个元素的块”的均值和方差。

例如

v <- c(1:100)
mean(v) # returns 50.5
var(v) # returns 841.6667

我真正想要的是一个长度为 10 的新向量,其中包含:

mean(v[1:10]), mean(v[11:20]), ... , mean(v[91:100])

(还有方差)

var(v[1:10]), var(v[11:20]), ... , var(v[91:100])

但是我不知道如何以明智的方式完成此操作。任何帮助表示赞赏,即使那是“在 [url] 上阅读此参考资料”。我试过用duckduckgo搜索这个,但没有用。

看起来应该很容易?

【问题讨论】:

标签: r statistics


【解决方案1】:

创建一个分组变量,每 10 个值递增 1

grp <- as.integer(gl(length(v), 10, length(v)))

然后按操作使用分组

tapply(v, grp, mean)
tapply(v, grp, var)

或者这可以在dplyr完成

library(dplyr)
tibble(v) %>%
    group_by(grp = as.integer(gl(n(), 10, n()))) %>%
    summarise(Mean = mean(v), Var = var(v), .groups = 'drop')

【讨论】:

  • 好的,我将不得不检查组变量和 tapply,因为我以前没有见过这些,给我几分钟时间做一些搜索
猜你喜欢
  • 2021-12-26
  • 1970-01-01
  • 2018-05-05
  • 2022-12-09
  • 2014-03-04
  • 2017-09-23
  • 2017-01-30
  • 2020-12-30
相关资源
最近更新 更多