我正在尝试创建一个三向 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
它给了我这个:
我不知道如何按因素级别对特定性别表中的条目进行排序。现在按字母顺序排序。
最佳答案
抓得好!这是 bug in the janitor package 。它被修复在 version 2.1.0 ,于 2021 年 1 月发布。上面相同的代码现在会产生按因子级别排序的列和行的输出:
$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)
关于r - 创建3路表: tabyl output sorting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58083148/