Reputation: 1998
I try to force a newline in a gt cell using R gt package. In gt documentation it is described as possible to do it for column labels using cols_label()
# example
gt_tbl %>%
cols_label(
col = html("text1,<br>text2")
)
But in cells I could not find a way to do it. I tried by adding \n or
without success.
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()
Always the same table that is generated :
Expected results :
Any ideas ?
Thank you
Upvotes: 13
Views: 5859
Reputation: 56219
We need to call fmt_markdown, see below:
Any Markdown-formatted text in the incoming cells will be transformed to the appropriate output type during render when using fmt_markdown().
dat %>%
mutate(b = str_replace_all(b, " ", "<br>")) %>%
gt() %>%
fmt_markdown(columns = TRUE)
Or a workaround: split into new rows then call gt()
:
dat %>%
separate_rows(b) %>%
mutate(a = ifelse(duplicated(a), "", a)) %>%
gt()
Upvotes: 27