有没有办法用图标重命名列名
Is there a way to rename column names with icons
有没有办法通过重命名向 headers 列添加图标。我试过下面
datatable((iris %>% rename(paste0('Sepal.Width',as.character(icon(name = "info-circle", lib = "font-awesome"))) = Sepal.Width)))
所以我在Sepal.Width旁边需要一个小图标,所以像上面那样试了。但我没有得到任何结果。谁能帮帮我?
您可以使用 gt
包,它接受 html 代码作为列名,icons
包提供正确的 html 代码:
library(tidyverse)
library(gt)
iris %>%
head() %>%
gt() %>%
cols_label(
Sepal.Width = html(as.character(icons::fontawesome("info-circle")))
)
由 reprex package (v2.0.1)
于 2022-02-23 创建
这会将图标显示为列名,但 data.frame 中的列名不会更改。考虑到在您的示例中使用 DT::datatable
,我认为这就是您真正想要的。
否则,您可以使用:
colnames(iris) <- c("Sepal.Length",
as.character(icons::fontawesome("info-circle")),
"Petal.Length",
"Petal.Width",
"Species")
但是显示实际图标而不是底层 html 代码会复杂得多。
也许有更简单的方法:
library(DT)
library(fontawesome)
js <- c(
'function( thead, data, start, end, display ) {',
sprintf(
' $(thead).find("th").eq(2).html(%s);',
shQuote(paste0("Sepal Width ", as.character(fa_i("info-circle"))))
),
'}'
)
dat <- iris[1:5, ]
dtable <- datatable(
dat,
options = list(
headerCallback = JS(js)
)
)
htmldeps <- dtable$dependencies
dtable$dependencies <- c(htmldeps, list(fa_html_dependency()))
dtable
有没有办法通过重命名向 headers 列添加图标。我试过下面
datatable((iris %>% rename(paste0('Sepal.Width',as.character(icon(name = "info-circle", lib = "font-awesome"))) = Sepal.Width)))
所以我在Sepal.Width旁边需要一个小图标,所以像上面那样试了。但我没有得到任何结果。谁能帮帮我?
您可以使用 gt
包,它接受 html 代码作为列名,icons
包提供正确的 html 代码:
library(tidyverse)
library(gt)
iris %>%
head() %>%
gt() %>%
cols_label(
Sepal.Width = html(as.character(icons::fontawesome("info-circle")))
)
由 reprex package (v2.0.1)
于 2022-02-23 创建这会将图标显示为列名,但 data.frame 中的列名不会更改。考虑到在您的示例中使用 DT::datatable
,我认为这就是您真正想要的。
否则,您可以使用:
colnames(iris) <- c("Sepal.Length",
as.character(icons::fontawesome("info-circle")),
"Petal.Length",
"Petal.Width",
"Species")
但是显示实际图标而不是底层 html 代码会复杂得多。
也许有更简单的方法:
library(DT)
library(fontawesome)
js <- c(
'function( thead, data, start, end, display ) {',
sprintf(
' $(thead).find("th").eq(2).html(%s);',
shQuote(paste0("Sepal Width ", as.character(fa_i("info-circle"))))
),
'}'
)
dat <- iris[1:5, ]
dtable <- datatable(
dat,
options = list(
headerCallback = JS(js)
)
)
htmldeps <- dtable$dependencies
dtable$dependencies <- c(htmldeps, list(fa_html_dependency()))
dtable