r - 如何按班级制作频率表
问题描述
这是我到目前为止设置的代码:
library(dslabs)
library(dplyr)
library(lubridate)
data("reported_heights")
dat <- mutate(reported_heights, date_time = ymd_hms(time_stamp)) %>%
filter(date_time >= make_date(2016, 01, 25) & date_time < make_date(2016, 02, 1)) %>%
mutate(type = ifelse(day(date_time) == 25 & hour(date_time) == 8 & between(minute(date_time), 15, 30), "inclass","online")) %>%
select(sex, type, time_stamp)
y <- factor(dat$sex, c("Female", "Male"))
x <- dat$type
counter <- count(dat, sex,type)
它为我创建了一个看起来像这样的 tbl_df,链接如下:
sex | type | n
1 Female | inclass | 26
2 Male | inclass | 13
3 Female | online | 42
4 Male | online | 69
我在问您是否可以帮助我编写一个代码来计算每种类型中每种性别的比例。
我一直在尝试使用 x 字符“inclass”和“online”作为添加比例列的列来创建一个新表,然后将 y 因子“男性”和“女性”作为行。我一直在尝试这样做pull()
,prop.table()
但我是一个完全的新手,如果你们美丽的专家可以帮助我,这对我来说意味着世界。我已经看了几个小时的答案,也许答案已经出来了,所以请原谅我似乎找不到它....非常感谢。
每种类型(课堂和在线)中的性别比例(男性和女性)是多少?
可以通过将性别除以给定类型班级的学生总数来计算这一点。
例如:在总数(42+69)=111中,有42名女性在线学习。答:在线课程中 38% 是女性。
我们如何在 R 中做到这一点?
解决方案
使用prop.table()
:
prop.table(table(y, x), 2)
# x
#y inclass online
# Female 0.6666667 0.3783784
# Male 0.3333333 0.6216216
推荐阅读
- python - Web 刮板仅在我打开要刮的网页后的几分钟内工作
- nativescript - Web 视图中的资源链接?
- lua - Roblox Studio - 错误:统计信息不是工具的有效成员
- asp.net - 使用 Dapper,如何将 sql 类型的值作为参数传递?
- html - 正在显示的 CSS 子菜单 google maps 脚本
- android - 我不知道什么时候应该在 Android 中使用 log.d() 和 log.w() 方法
- nginx - 位置不适用于文件,但仅适用于路径
- objective-c - 无法从objective-c接口访问swift方法
- excel - 如何使用python在XLSX文件中设置单元格的数字格式
- sql - 为什么内部连接有时会导致交叉连接?