table KableExtra() 中的有条件颜色行
Conditionally color rows in table KableExtra()
我想使用 kableExtra 有条件地用数据格式化 table。
让我们使用鸢尾花数据集作为代表。另外,假设我想根据物种为行着色。
这是我尝试使用的代码 - 文档中的示例:
iris %>% mutate(Species = cell_spec(Species, color = spec_color(1:10, option = "A"), link = "#",tooltip = paste0("Sepal Length: ", Sepal.Length))) %>% kable("html", escape = F, align = "c") %>% kable_styling("condensed", full_width = F)
但是它不会根据物种对行进行着色。有人可以帮忙吗?
不确定 spec_color
是文档中的正确函数:
“spec_color 会将连续变量映射到任何绿色调色板。”;
您希望将离散变量映射到所有变量。
这可能是一种方法:
(注意:如果要为背景着色,请将“颜色”替换为“背景”。)
已修改以包含 OP 的评论以控制颜色顺序。
library(kableExtra)
library(dplyr)
# make a minimal data frame:
iris1 <-
iris %>%
group_by(Species) %>%
slice_head(n = 4) %>%
ungroup()
iris1 %>%
mutate(across(everything(), ~cell_spec(.x, color = factor(iris1$Species, labels = c("red", "green", "blue")),
link = "#",
tooltip = paste0("Sepal Length: ", Sepal.Length)))) %>%
kable("html", escape = F, align = "c") %>%
kable_styling("condensed", full_width = F)
这导致:
要控制颜色顺序,请根据需要操纵因子水平和标签,例如:
iris1 %>%
mutate(across(everything(), ~cell_spec(.x, color = factor(iris1$Species,
levels = c("versicolor", "setosa", "virginica"),
labels = c("red", "green", "blue")),
link = "#",
tooltip = paste0("Sepal Length: ", Sepal.Length)))) %>%
kable("html", escape = F, align = "c") %>%
kable_styling("condensed", full_width = F)
我想使用 kableExtra 有条件地用数据格式化 table。
让我们使用鸢尾花数据集作为代表。另外,假设我想根据物种为行着色。
这是我尝试使用的代码 - 文档中的示例:
iris %>% mutate(Species = cell_spec(Species, color = spec_color(1:10, option = "A"), link = "#",tooltip = paste0("Sepal Length: ", Sepal.Length))) %>% kable("html", escape = F, align = "c") %>% kable_styling("condensed", full_width = F)
但是它不会根据物种对行进行着色。有人可以帮忙吗?
不确定 spec_color
是文档中的正确函数:
“spec_color 会将连续变量映射到任何绿色调色板。”;
您希望将离散变量映射到所有变量。
这可能是一种方法:
(注意:如果要为背景着色,请将“颜色”替换为“背景”。)
已修改以包含 OP 的评论以控制颜色顺序。
library(kableExtra)
library(dplyr)
# make a minimal data frame:
iris1 <-
iris %>%
group_by(Species) %>%
slice_head(n = 4) %>%
ungroup()
iris1 %>%
mutate(across(everything(), ~cell_spec(.x, color = factor(iris1$Species, labels = c("red", "green", "blue")),
link = "#",
tooltip = paste0("Sepal Length: ", Sepal.Length)))) %>%
kable("html", escape = F, align = "c") %>%
kable_styling("condensed", full_width = F)
这导致:
要控制颜色顺序,请根据需要操纵因子水平和标签,例如:
iris1 %>%
mutate(across(everything(), ~cell_spec(.x, color = factor(iris1$Species,
levels = c("versicolor", "setosa", "virginica"),
labels = c("red", "green", "blue")),
link = "#",
tooltip = paste0("Sepal Length: ", Sepal.Length)))) %>%
kable("html", escape = F, align = "c") %>%
kable_styling("condensed", full_width = F)