R:基于给定值的表格中的颜色单元格

时间:2016-09-14 09:59:17

标签: r colors r-table

我有一张数字1-10的表格。它看起来像这样:

My Table

现在我想为每个整数填充不同颜色的单元格。 例如,值为1的所有单元格应为红色,2为黑色..依此类推。 你有什么建议如何实现这一目标? 非常感谢。

1 个答案:

答案 0 :(得分:0)

确实存在可以执行此操作的包。当前具有最直接接口的程序包可能使用condformat函数condformat::rule_file_discrete。遗憾的是,我没有一个有效的例子,因为condformat需要rJava,这与我的系统不相符。

pixiedust包(完全披露,我是作者)可以做到这一点,但目前不是很直接。

library(pixiedust)
library(scales)
library(magrittr)

# Make the table (as a matrix, but a data frame would work as well)
set.seed(pi)
X <- matrix(sample(1:10, 
                   size = 100, 
                   replace = TRUE),
            nrow = 10)

# Define 10 colors
background <- hue_pal()(10) %>%
  setNames(1:10)

show_col(background)


# Convert X to a dust object
X_dust <- dust(X)

# Apply the background colors
for (i in sort(unique(as.vector(X)))){
  X_dust <- 
    sprinkle(X_dust,
             rows = X_dust$body$row[X_dust$body$value == i],
             cols = X_dust$body$col[X_dust$body$value == i],
             bg = background[i],
             fixed = TRUE)
}

# Print the HTML code
X_dust %>%
  sprinkle_print_method("html")

我目前正在使用几行代码开发代码,但该功能尚未准备好发布。