微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 RStudio 和 Knitr,如何可变地对特定列进行颜色编码? 我想让它基于数据框 df$hex.color 的列呈现

如何解决使用 RStudio 和 Knitr,如何可变地对特定列进行颜色编码? 我想让它基于数据框 df$hex.color 的列呈现

我有一个df 构建的数据框 base::colors(TRUE);,可以看作下面的示例:

df = structure(list(color = c("white","aliceblue","antiquewhite","antiquewhite1","antiquewhite2","antiquewhite3","antiquewhite4","aquamarine","aquamarine2","aquamarine3","aquamarine4","azure","azure2","azure3","azure4","beige","bisque","bisque2","bisque3","bisque4"),hex.color = c("#FFFFFF","#F0F8FF","#FAEBD7","#FFEfdb","#EEDFCC","#CDC0B0","#8B8378","#7FFFD4","#76EEC6","#66CDAA","#458B74","#F0FFFF","#E0EEEE","#C1CDCD","#838B8B","#F5F5DC","#FFE4C4","#EED5B7","#CDB79E","#8B7D6B"),r = c(255,240,250,255,238,205,139,127,118,102,69,224,193,131,245,139),g = c(255,248,235,239,223,192,228,213,183,125),b = c(255,215,219,204,176,120,212,198,170,116,220,196,158,107)),row.names = c(NA,20L),class = "data.frame")

你可以看到它是如何呈现的:

enter image description here

我想让它基于数据框 df$hex.color 的列呈现。

理想情况下,它可能是一个我可以用颜色填充的新列 df$empty。这样人们就可以看到“名称”、“十六进制值”,并直观地看到颜色,而无需我将其放入大图形中。

使用 RStudio、Knitr,如何对特定列进行可变颜色编码

解决方法

这可能是使用 kableExtra 的一种方法。我在带有 HTML 渲染的 RMarkdown 文档中尝试了这一点。这涉及创建一个包含空格的新列 empty。使用 cell_spec 中的 kableExtra,您可以根据 empty 指示 hex.color 列中单元格的背景颜色。确保在空格中包含 escape = FALSE

library(kableExtra)
library(dplyr)

df$empty = strrep(" ",10)

df %>%
  mutate(empty = cell_spec(empty,background = hex.color,escape = FALSE)) %>%
  kable(escape = FALSE) %>%
  kable_styling()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。