我正在使用 R markdown 和 qwraps2 以及 dplyr 包
library(dplyr)
library(qrwaps2)
我有一个包含 1 个分类变量和 2 个数值变量的数据集,我想以以下格式获取分类变量的计数和百分比:计数(百分比 %)
数据集如下:
structure(list(SIDE = c("Left", "Right", "Left", "Right", "Left",
"Right", "Right", "Right", "Right", "Right", "Left", "Left",
"Left", "Right", "Left", "Right", "Right", "Left", "Left", "Left",
"Left", "Right", "Right"), PREOP_mTFA = c(163.5, 164.9, 168.7,
170.3, 162.8, 166.7, 171, 165.9, 165.9, 170.8, 170.5, 173.3,
167.7, 170.7, 159, 170.9, 168.2, 171.2, 164, 166.6, 169.1, 171.2,
175.9), PREOP_mLDFA = c(86, 95, 90, 86, 92, 89, 92, 96, 90, 86,
89, 87, 93, 90, 98, 89, 90, 88, 92, 91, 89, 90, 88)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -23L))
我使用以下代码来获取计数和百分比,但它们是分开的。
DLO_TEST %>% group_by(SIDE) %>%
summarise(count = n())
DLO_TEST %>% group_by(SIDE) %>%
summarise(percent = 100 * n() / nrow(DLO_TEST))
我想要一个格式为计数的输出,然后括号中带有百分号%的百分比:计数(百分比%)。如何修改代码来做到这一点?
我试过了
qwraps2::n_perc(DLO_TEST$SIDE == Right)
这不起作用。我认为它仅适用于数字变量。
也许是这样的?
DLO_TEST |>
summarize(
count = n(),
.by = SIDE
) |>
mutate(
percent = scales::percent_format(accuracy = 0.1)(count / sum(count)),
your_string = glue::glue("{count} ({percent})")
)
# # A tibble: 2 × 4
# SIDE count percent your_string
# <chr> <int> <chr> <glue>
# 1 Left 11 47.8% 11 (47.8%)
# 2 Right 12 52.2% 12 (52.2%)
如果您有更多分类变量,那么这种确切的格式没有意义,因为它们可能具有不同的级别数。您可以先将数据转换为长格式,以便它们全部位于一列中。您可能还对
table1
包感兴趣,它在自动化表格方面做得很好。