gt table - новая строка в ячейке
Я пытаюсь принудительно ввести новую строку в ячейку gt с помощью пакета R gt. В документации по gt описано, как это можно сделать для меток столбцов с помощьюcols_label()
# example
gt_tbl %>%
cols_label(
col = html("text1,<br>text2")
)
Но в камерах я не мог найти способ это сделать. Я попытался добавить \n или
безуспешно.
library(gt)
# dummy data
dat <- tibble(
a=1:3,
b=c("a","b c","d e f")
)
# A tibble: 3 x 2
a b
<int> <chr>
1 1 a
2 2 b c
3 3 d e f
# with \n
dat %>%
mutate(b=str_replace_all(b," ","\n")) %>%
gt()
# with <br>
dat %>%
mutate(b=str_replace_all(b," ","<br>")) %>%
gt()
Всегда та же таблица, которая создается:
Ожидаемые результаты:
Есть идеи?
Спасибо
1 ответ
Решение
Нам нужно вызвать fmt_markdown, см. Ниже:
Любой текст в формате Markdown во входящих ячейках будет преобразован в соответствующий тип вывода во время рендеринга при использовании fmt_markdown().
dat %>%
mutate(b = str_replace_all(b, " ", "<br>")) %>%
gt() %>%
fmt_markdown(columns = TRUE)
Или обходной путь: разделите на новые строки, затем вызовите gt()
:
dat %>%
separate_rows(b) %>%
mutate(a = ifelse(duplicated(a), "", a)) %>%
gt()