如何合并Dplyr分组计算中位数与观测数统计的代码?
合并dplyr代码同时计算中位数与观测数
当然可以合并,只需要在同一个summarise()调用里同时添加观测数的统计逻辑即可,最直接的方式是使用n()函数(返回当前分组的行数),代码如下:
result <- iris %>% group_by(Species) %>% summarise( medianSL = median(Sepal.Length), medianSW = median(Sepal.Width), medianPL = median(Petal.Length), medianPW = median(Petal.Width), n_observations = n() # 统计每组观测数量 )
如果你习惯用tally()的逻辑,也可以先通过add_count()添加观测数字段,再进行汇总,但上面的方式更简洁高效:
result <- iris %>% add_count(Species, name = "n_observations") %>% group_by(Species, n_observations) %>% summarise( medianSL = median(Sepal.Length), medianSW = median(Sepal.Width), medianPL = median(Petal.Length), medianPW = median(Petal.Width) )
两种方式都能一次性生成包含各特征中位数和每组观测数的结果表,第一种方法在分组后直接汇总,性能更优。
内容的提问来源于stack exchange,提问作者Jamie
相关产品推荐
相关产品推荐

