问题描述
我想在sparkline
的包装表中使用gt
迷你图表。可能吗?我知道可以使用formattable
,但是我更喜欢使用gt
表。这是我想完成的事情,以及如何使用formattable
来做到这一点。
library(tidyverse)
library(sparkline)
library(htmlwidgets)
library(formattable)
set.seed(27)
tibble(
name = rep(c("A","B"),each = 20),value = runif(40,min = -10,max = 10) %>% cumsum()
) %>%
group_by(name) %>%
summarise(
chart = spk_chr(
value,type="line")
) %>%
formattable(align=c("l")) %>%
as.htmlwidget() %>%
spk_add_deps()
解决方法
使用fmt_markdown
将列视为HTML。
library(tidyverse)
library(sparkline)
library(gt)
p <- tibble(
name = rep(c("A","B"),each = 20),value = runif(40,min = -10,max = 10) %>% cumsum()
) %>%
group_by(name) %>%
summarise(
chart = spk_chr(
value,type="line")
) %>%
gt() %>%
fmt_markdown(columns = vars(chart))
然后,使用htmltools::attachDependencies
p_html <- gt:::as.tags.gt_tbl(p)
p_html <- htmltools::attachDependencies(p_html,htmlwidgets::getDependency("sparkline"))
print(p_html,browse = interactive())