在 gt( ) 包中,row_summary( ) 函数很容易支持计算每次观察的平均百分比,但这与整体百分比分布不同。我想出了一个可行的解决方案(如下),但只能通过一次添加一列的总行百分比来实现。有没有办法“自动”添加这些总体百分比?
library(dplyr)
library(gt)
# Create test data
set.seed(1)
df <- tibble(some_letter = sample(letters, size = 10, replace = FALSE),
num1 = sample(100:200, size = 10, replace = FALSE),
num2 = sample(100:200, size = 10, replace = FALSE),
n = num1 + num2) %>%
mutate(across(starts_with("num"), ~(.x)/(n), .names = "pct_{col}"))
# Use dplyr to calculate the correct overall totals and percentages [target]
df %>%
summarise_at(vars(num1, num2, n), funs(sum)) %>%
mutate(across(starts_with("num"), ~(.x)/(n), .names = "pct_{col}"))
# Create table in gt( ), using a separate call to row_summary for each percentage
gt(df) %>%
summary_rows(fns = list(TOTAL = "sum"), columns = vars(num1, num2, n)) %>%
summary_rows(fns = list(TOTAL = ~ sum(df$num1)/sum(df$n) ), columns = vars(pct_num1) ) %>%
summary_rows(fns = list(TOTAL = ~ sum(df$num2)/sum(df$n) ), columns = vars(pct_num2) )