#r #gt
Вопрос:
Я использую gt
пакет, и я хотел бы привести имена общих сводок в соответствие со столбцом переменных. Следующий пример показывает, что я пытаюсь сделать:
library(dplyr)
library(gt)
df <- tibble(names = c("x", "y"),
a = c(1, 2),
b = c(3, 4))
tbl <- df %>%
gt() %>%
grand_summary_rows(
columns = where(is.numeric),
fns = list(Total = ~sum(.)),
formatter = fmt_integer
)
tbl
Я хочу, чтобы «Всего» было указано в столбце «Имена», как показано здесь:
Как я могу это сделать, используя gt
только?
Ответ №1:
Комментарии:
1. Это полезно, но я стараюсь избегать подключения другой библиотеки. Отредактирует вопрос, чтобы отразить это.
Ответ №2:
Поскольку вы хотите использовать только gt()
возможность использовать переменную names
в качестве группы:
df %>%
gt(groupname_col = "names") %>%
grand_summary_rows(
columns = where(is.numeric),
fns = list(Total = ~sum(.))
)
* formatter = fmt_integer
выдал мне ошибку, поэтому я удалил
Комментарии:
1. Спасибо, но это не идеально, так как теперь x и y находятся в разных строках от их значений. (В моем фактическом случае использования гораздо больше строк, поэтому этот макет был бы довольно громоздким.)
2. Я вижу, к сожалению, это было единственное решение, которое я мог придумать. Давайте посмотрим, придет ли кто-нибудь с решением
Ответ №3:
Поскольку вы уже используете dplyr
, вы можете выбрать выполнить с ним манипуляции и использовать gt
для отображения таблицы.
library(dplyr)
library(gt)
bind_rows(df,
df %>%
summarise(across(where(is.numeric), sum)) %>%
mutate(names = 'Total')) %>%
gt()
Комментарии:
1. Спасибо-это творческое решение. Однако, как указано в пересмотренном вопросе, я пытаюсь сделать это
gt
только с помощью функций. Фактический вариант использования включает вызовы функцийtab_spanner
иcols_label
для столбцов a и b, поэтому я не могу просто вызвать базовый фрейм данных.