r - 总结数据帧 R 中每组的输出
问题描述
(学生考试,请勿回复;))大家好
,
我对 R 有点陌生,但我找不到解决问题的方法。
我的数据框中有两列:性别和年龄。我想知道每个性别的平均年龄。
我希望这个答案是 2 x 2 表。
我尝试了什么:
我可以找到两组的平均值,但是 R 将它们作为列添加到我的数据框中。
另外,我知道如何用我想要的结果制作一个表格,但这当然不是原始数据集。
我想要的是一张 2x2 的表格:
性别 AVG_age
男 21.2
女 21.5
在我的代码下面:
library(dplyr)
set.seed(13)
Sex <- sample(c("Male","Female"), 100, replace=TRUE, prob = c(0.53, 0.47))
Age <- sample((18:25),100,replace=T)
# Output with extra column
df_sex_age <- data.frame(Sex,Age) %>%
group_by(Sex) %>%
mutate(Avg_Age = mean(Age))
View(df_sex_age)
# What I want
data.frame(Sex = c("Male", "Female"),
Avg_Age = c(21.2, 21.5))
解决方案
您想替换mutate()
为summarize()
. 您也可以summarise()
用作别名。该mutate()
函数计算新值并创建一个新列以返回与原始行数相同的 data.frame。该summarize()
函数根据分组变量聚合数据,并创建新的汇总列。生成的 data.frame 只有行数作为分组变量的唯一组合,并且只有分组列加上新的聚合列。
data.frame(Sex, Age) %>%
group_by(Sex) %>%
summarize(Ave_age = mean(Age))
# A tibble: 2 x 2
Sex Ave_age
<chr> <dbl>
1 Female 21.3
2 Male 21.6
推荐阅读
- tensorflow - 使用 Conv2D 时,kernel_size 何时以及为什么可能是 1 或 2 暗淡?
- javascript - discord.js-commando RangeError:参数类型“字符串”未注册
- javascript - 复制带有颜色和样式的文本
- eclipse - 从 Eclipse 导出的 JAR - jar 中的类文件和 config.xml 文件 - 如何在 xx.class 中使用此配置文件
- javascript - Html和javascript代码拼接问题
- python - 在 ubuntu 上运行 python 获取无效语法
- python - 在 WSL2 Ubuntu 中使用 Laravel 运行 Python 会导致“找不到模块”
- redirect - Kenticp 要求使用 307 而不是 301 进行 SSL 重定向
- d3.js - 拖动后如何找到组合 g / svg 元素的 x 位置
- css - 将 HTML 模板上传到 WrodPress - CSS 崩溃