使用 dplyr 按组获取高于标准的行的平均值

问题描述 投票:0回答:1

我正在尝试获取高于特定阈值的行的平均值(按组)。不幸的是,我的尝试没有产生有效的结果。

数据:

df <- data.frame(
  id=c(1:10),
  group=c("a", "a", "a", "a", "a", "b", "b", "b", "b", "b"),
  b=rnorm(10,5,1)
)
> df
   id group        b
1   1     a 4.154182
2   2     a 5.958000
3   3     a 3.346686
4   4     a 5.689609
5   5     a 5.003576
6   6     b 5.127969
7   7     b 4.841127
8   8     b 3.268419
9   9     b 3.601477
10 10     b 5.796909

尝试:

df %>%
  dplyr::group_by(group) %>%
  summarise(
    mean=mean(b>4)
  )

df %>%
  dplyr::group_by(group) %>%
  summarise(
    mean=mean(which(b>4))
  )
r dplyr
1个回答
0
投票

我认为跑步前你需要

b[b>4]
mean

df %>%
  summarise(mean = mean(b[b > 4]), .by = group)
© www.soinside.com 2019 - 2024. All rights reserved.