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()

Другие вопросы по тегам