r - 创建 3-way 表:tabyl 输出排序
问题描述
我正在尝试创建一个三向 tabyl,并且我正在努力根据需要对列和行进行排序。这是示例:
library(janitor)
df <- data.frame(gender = c("f", "m", "m", "f", "m"),
age_group = factor(
c("35-45", "18-35", ">55", "45-55", ">55"),
levels = c("18-35", "35-45", "45-55", ">55")),
bmi_group = factor(
c("18.5 - 25", "<18.5", "18.5 - 25", ">30", "25 - 30"),
levels = c("<18.5", "18.5 - 25", "25 - 30", ">30")),
stringsAsFactors = TRUE)
df %>%
tabyl(bmi_group, age_group, gender, show_missing_levels = FALSE) %>%
adorn_totals("row") %>%
adorn_percentages("all") %>%
adorn_pct_formatting(digits = 1) %>%
adorn_ns %>%
adorn_title
它给了我这个:
我不知道如何按因子级别对特定性别表中的条目进行排序。排序现在是按字母顺序排列的。
解决方案
接得好!这是janitor 包中的一个错误。它已在 2021 年 1 月发布的2.1.0 版本中得到修复。上面的相同代码现在会产生按因子级别排序的列和行的输出:
$f
age_group
bmi_group 35-45 45-55
18.5 - 25 50.0% (1) 0.0% (0)
>30 0.0% (0) 50.0% (1)
Total 50.0% (1) 50.0% (1)
$m
age_group
bmi_group 18-35 >55
<18.5 33.3% (1) 0.0% (0)
18.5 - 25 0.0% (0) 33.3% (1)
25 - 30 0.0% (0) 33.3% (1)
Total 33.3% (1) 66.7% (2)
推荐阅读
- python-3.x - 通过扩展右数据框的单元格内容省略左连接中的重复项
- javascript - putImageData 无法缩放/适合画布中的视频/图像(HTML5、CSS、JS)
- javascript - 如何覆盖代理在控制台中的显示方式?
- wordpress - 将excel文件导入wordpress数据库
- excel - 如何摆脱运行时错误 91 对象变量或未设置块变量?
- apache-spark - Databricks 中使用的集群管理器是什么?如何更改 Databricks 集群中的执行程序数量?
- jenkins - 获取 Jenkins docker slaves 的映射端口作为管道参数
- python - 使用 pyinstaller 制作我的 python exe 文件后,我收到错误 - “无法执行脚本 pyiboot01_bootstrap
- sql - 编写查询以按部门名称显示具有最大人员数量顺序的部门名称
- mysql - 日期时间值不正确:列的“0000-00-00 00:00:00”