簡體   English   中英

R - 如何在 group_by 期間拆分為 terciles

[英]R - how to split into terciles during group_by

假設我們要根據萼片寬度的 tercile 組計算萼片長度的平均值。

我們可以使用fabricatr package 中的split_quantile function 並執行以下操作:

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來計算三分位數,然后將數據幀重新連接在一起。 但是,我正在尋找一種拆分 dataframe 的方法。

您已經在文本中寫下了答案,但是您可以在按物種分組后為 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

代表 package (v0.3.0) 於 2020 年 5 月 27 日創建

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM