r - dplyr - 在同一个管道中变异和计数
问题描述
我有以下数据框:
D = data_frame(gender = c("M", "M", "M", "F", "F", "F", "M", "F", "F", "F"), age = c(20, 33, 42, 32,
55, 70, 18, 22, 30, 40))
我想计算性别,并计算每个性别的平均年龄。
我努力了:
D %>% group_by(gender) %>% mutate(M = mean(age)) %>% count()
但这摆脱了已经计算的平均年龄。似乎这应该是一件容易的事......我错过了什么?
解决方案
的帮助文件count()
说:
tally() 是一个方便的 summarise 包装器,它可以调用 n() 或 sum(n),具体取决于您是第一次统计还是重新统计。count() 类似,但在之前调用 group_by(),之后调用 ungroup()。
所以让我们使用summarize()
with n()
:
library(tidyverse, warn.conflicts = FALSE)
D <-tibble(gender = c("M", "M", "M", "F", "F", "F", "M", "F", "F", "F"),
age = c(20, 33, 42, 32, 55, 70, 18, 22, 30, 40))
D %>%
group_by(gender) %>%
summarize(n = n(), mean_age = mean(age))
#> # A tibble: 2 x 3
#> gender n mean_age
#> <chr> <int> <dbl>
#> 1 F 6 41.5
#> 2 M 4 28.2
推荐阅读
- c++ - 使用 C++ 使用迭代器、容器和向量从文件中读取特定数据
- flutter - 错误:不是 Flutter 中的常量表达式
- javascript - OpenLayers - 输入新搜索时从搜索结果中清除标记
- ruby - Ruby 密钥被替换,而不是创建新密钥
- python - 尽管弹出窗口存在,但无法切换到弹出窗口
- angular - Angular中按钮内的微调器
- flutter - Android Notch Phone 中的标题文本在颤动中被剪掉
- bash - 我如何在这个脚本中输出我的命令的结果?
- python-3.x - 我正在尝试解决下面提到的问题陈述
- laravel - 不同的操作系统服务器传输文件在 AWS S3 存储桶上不起作用,它仅适用于 windows 到 windows