我的数据集看起来像这样:
data <- data.frame(
anoobito = sample(2019:2023),
NOME_MUNICIPIO = sample(c("Rio de Janeiro", "São Paulo", "Araruama", "Queimados"), 230, replace = TRUE)
)
字符串
当我在RStudio中使用gtsummary按整个列降序排序时,它工作得很好。
data %>%
select(anoobito, NOME_MUNICIPIO) %>%
tbl_summary(by = anoobito,
label = c(NOME_MUNICIPIO ~ "")) %>%
add_overall(last = T) %>%
modify_table_body(fun = ~ dplyr::arrange(., desc(readr::parse_number(stat_0)))) %>%
modify_spanning_header(c("stat_1":"stat_5") ~ "**Ano do Óbito**") %>%
modify_header(label = 'Município de Residência') %>%
bold_labels()
型
的数据
问题是当我在RMarkdown上运行相同的命令时。它不按降序排列。我对其他表使用相同的命令,它工作得很好。
这是我从原始数据集得到的结果表:
的
但是有一行它的总(Total)值超过8k obs,它应该是表中的第一行。我不知道为什么会发生这种情况。
2条答案
按热度按时间ztigrdn81#
问题中的第二个输出表显示,您正在使用
.
作为big.mark
/千分频器,即最后一列“N = 9.150”。readr::parse_numbers()
默认情况下期望,
作为千分频器,并将.
解析为十进制标记。字符串
我们可以通过在locale参数中将
decimal_mark
定义为,
来改变这一点。型
我改变了你的例子数据,所以我们的总数超过1000,而里约热内卢将保持在1000以下。
型
如果我们使用您的原始代码,里约热内卢排在第一位,因为它的总价值被解析为高于其他地方的价值。
型
x1c 0d1x的数据
当我们在
parse_number()
调用中包含locale = locale(decimal_mark = ",")
时,我们得到了所需的行顺序。型
的
ct2axkht2#
Till的解决方案很棒。这是另一个不使用
modify_table_body()
的版本,我有时觉得它更简单。编程愉快!字符串
x1c 0d1x的数据
创建于2023-10-27带有reprex v2.0.2