R - 如何在group_by期间分裂成三倍

  • 本文关键字:分裂 三倍 group by r
  • 更新时间 :
  • 英文 :


假设我们要根据萼片宽度的三组来计算萼片长度的平均值。

我们可以使用fabricatr包中的split_quantile函数并执行以下操作:

iris %>% 
group_by(split_quantile(Sepal.Width, 3)) %>% 
summarise(Sepal.Length = mean(Sepal.Length))

目前为止,一切都好。现在,假设我们想group_by(Species, split_quantile(Sepal.Width, 3))而不仅仅是group_by(split_quantile(Sepal.Width, 3))

但是,如果我们希望在每个物种类型内部而不是一般地计算三分呢?

基本上,我正在寻找的可以通过根据Speciesiris拆分为多个数据帧来实现,使用这些数据帧上的split_quantile来计算三倍数,然后将数据帧重新连接在一起。但是,我正在寻找一种在不拆分数据帧的情况下执行此操作的方法。

你已经在文本中写下了答案,但是你可以在按物种分组后为 tercile 创建一个新变量,然后用SpeciesTercile重新分组。

library(tidyverse)
library(fabricatr)
iris %>% 
group_by(Species) %>%
mutate(Tercile = split_quantile(Sepal.Width, 3)) %>%
group_by(Species, Tercile) %>%
summarise(Sepal.Length = mean(Sepal.Length))
#> # A tibble: 9 x 3
#> # Groups:   Species [3]
#>   Species    Tercile Sepal.Length
#>   <fct>      <fct>          <dbl>
#> 1 setosa     1               4.69
#> 2 setosa     2               5.08
#> 3 setosa     3               5.27
#> 4 versicolor 1               5.61
#> 5 versicolor 2               6.12
#> 6 versicolor 3               6.22
#> 7 virginica  1               6.29
#> 8 virginica  2               6.73
#> 9 virginica  3               6.81

创建于 2020-05-27 由 reprex 软件包 (v0.3.0(

最新更新