r - 计算组中在另一列中具有特定值的行的百分比
问题描述
我正在使用数据集birthwt。
对于每个年龄,我想找出白人母亲的百分比。我的最终目标是按年龄在图中显示该百分比。我怎样才能做到这一点?我正在学习如何使用 tidyverse 函数,所以如果可能的话,我更愿意这样做。这是我到目前为止的工作:
library(tidyverse)
library(tidyselect)
library("MASS")
grouped <- birthwt %>%
count(race, age) %>%
spread(key = race, value = n, fill = 0)
grouped
这会得到一个表格,其中每一行代表一个年龄,每个种族有一列代表该年龄的母亲人数。这种方法可能会也可能不会走上正确的道路。
解决方案
我们可以计算每个年龄race
的白色数量,age
然后将其除以每个年龄的总行数以获得比率。
library(dplyr)
birthwt %>%
group_by(age) %>%
summarise(perc = sum(race == 1)/n())
# A tibble: 24 x 2
# age perc
# <int> <dbl>
# 1 14 0.333
# 2 15 0.333
# 3 16 0.286
# 4 17 0.25
# 5 18 0.6
# 6 19 0.625
# 7 20 0.333
# 8 21 0.417
# 9 22 0.769
#10 23 0.308
# … with 14 more rows
在基础 R 中,我们可以使用aggregate
以下相同的逻辑
aggregate(race~age, birthwt,function(x) sum(x == 1)/length(x))
或者类似于您使用的方法table
,我们可以做
tab <- table(birthwt$age, birthwt$race)
tab[, "1"]/rowSums(tab)
推荐阅读
- highcharts - Highcharts 三个中的一个输入不起作用
- java - 如何在 Hibernate 中设置 Sqlite 相对路径?
- python - Pygame 问题:按下键时精灵不会移动。是的,我环顾四周
- excel - 根据两个日期之间的总时间隐藏行
- spring - 限制 JDBCTemplate 日志
- fullcalendar - 尽管只有 30 分钟的事件,但 JQuery Fullcalendar 显示完整标题
- python - 从 CSV 文件中读取第二行到 Python
- android-studio - Android Studio 3.2.1:即使代码中没有错误,单击静默模式切换应用程序也会崩溃
- python - 如何在没有字符串解析的情况下解析 Python 中的 ValueError?
- apache-spark - Spark:Avro 与 Parquet 的表现