假设我们要根据萼片宽度的三组来计算萼片长度的平均值。
我们可以使用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))
。
但是,如果我们希望在每个物种类型内部而不是一般地计算三分呢?
基本上,我正在寻找的可以通过根据Species
将iris
拆分为多个数据帧来实现,使用这些数据帧上的split_quantile
来计算三倍数,然后将数据帧重新连接在一起。但是,我正在寻找一种在不拆分数据帧的情况下执行此操作的方法。
你已经在文本中写下了答案,但是你可以在按物种分组后为 tercile 创建一个新变量,然后用Species
和Tercile
重新分组。
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(