有没有办法用图标重命名列名

man*_*u p 5 r dt

有没有办法通过重命名来将图标添加到列标题中。我尝试过下面的

datatable((iris %>% rename(paste0('Sepal.Width',as.character(icon(name = "info-circle", lib = "font-awesome"))) = Sepal.Width)))
Run Code Online (Sandbox Code Playgroud)

所以我需要在 Sepal.Width 旁边有一个小图标,所以像上面一样尝试。但我没有得到任何结果。谁能帮我?

JBG*_*ber 5

您可以使用gt接受 html 代码作为列名称的包和icons提供正确 html 代码的包:

library(tidyverse)
library(gt)

iris %>% 
  head() %>% 
  gt() %>% 
  cols_label(
    Sepal.Width = html(as.character(icons::fontawesome("info-circle")))
  )
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

由reprex 包于 2022 年 2 月 23 日创建(v2.0.1)

这会将图标显示为列名称,但 data.frame 中的列名称不会更改。DT::datatable考虑到在您的示例中的使用,我认为这就是您真正想要的。

否则,您可以使用:

colnames(iris) <- c("Sepal.Length",
                    as.character(icons::fontawesome("info-circle")), 
                    "Petal.Length", 
                    "Petal.Width", 
                    "Species")
Run Code Online (Sandbox Code Playgroud)

但显示实际图标而不是底层 html 代码会复杂得多。