r - R - 如何在 group_by 期间拆分为 terciles
问题描述
假设我们要根据萼片宽度的 tercile 组计算萼片长度的平均值。
我们可以使用包中的split_quantile
函数fabricatr
并执行以下操作:
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))
.
但是,如果我们希望在每个物种类型内部而不是一般情况下计算三分位数怎么办?
基本上,我正在寻找的可以通过拆分iris
为基于 的几个数据帧来实现,在这些数据帧上Species
使用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
由reprex 包(v0.3.0)于 2020-05-27 创建
推荐阅读
- python - 无法设置vscode练习python
- javascript - 如何在下一个js中设置背景以覆盖文本?
- directx - 为什么使用 CopyResource 在 ID3D11Devices 之间共享纹理时会出现显存泄漏?
- sql - 根据 Google Big Query 中的条件选择上一个组值
- node.js - 我应该测试服务还是路线?
- reactjs - TypeError:PanelReview() 得到了一个意外的关键字参数“panelmember”
- c++ - 从抽象类重载算术运算符
- micronaut - Micronaut 无法构建原生镜像 Graalvm
- android - 为产品构建 https://github.com/minvws/nl-covid19-coronacheck-app-android
- css - 将子元素发送到前面