【发布时间】:2020-06-11 17:38:21
【问题描述】:
我正在尝试找到一种方法来使用dplyr 一步获得汇总统计数据,例如按组和整体的方法
#Data set-up
sex <- sample(c("M", "F"), size=100, replace=TRUE)
age <- rnorm(n=100, mean=20 + 4*(sex=="F"), sd=0.1)
dsn <- data.frame(sex, age)
library("tidyverse")
#Using dplyr to get means by group and overall
mean_by_sex <- dsn %>%
group_by(sex) %>%
summarise(mean_age = mean(age))
mean_all <- dsn %>%
summarise(mean_age = mean(age)) %>%
add_column(sex = "All")
#combining the results by groups and overall
final_result <- rbind(mean_by_sex, mean_all)
final_result
#> # A tibble: 3 x 2
#> sex mean_age
#> <fct> <dbl>
#> 1 F 24.0
#> 2 M 20.0
#> 3 All 21.9
#This is the table I want but I wonder if is the only way to do this
有没有一种方法可以使用group_by_at 或group_by_all 或使用tidyverse 和dplyr 的类似功能在更短的时间内完成
任何帮助将不胜感激
【问题讨论】:
-
类似于:stackoverflow.com/questions/31164350/…(实际上没有比您使用的更好的答案)或其他替代方法:stackoverflow.com/questions/34045447/…
-
cran.r-project.org/package=tables 包可以在一行中做到这一点:
library(tables); tabular(sex + 1 ~ age * mean, dsn)
标签: r dplyr tidyverse mean summarize