gpt4 book ai didi

r - 根据单元格值使用 kableExtra 为行着色

转载 作者:行者123 更新时间:2023-12-02 11:50:54 28 4
gpt4 key购买 nike

我将 R markdown 与 LaTeX 结合使用来创建 PDF 报告。为了生成表,我使用 kableExtra 包。

我想根据特定列中的值更改行的样式。我一直在尝试 cell_spec,但据我所知,它仅更改列中值的样式,而不更改整个行。

例如,在下表中,我想突出显示所有拥有六个以上气缸的汽车。所以结果应该是这样的:

library(knitr)
library(kableExtra)
library(tidyverse)

mtcars |>
slice(1:5) |>
select(mpg:wt) |>
kable(booktabs = T) %>%
kable_styling() %>%
row_spec(5, bold = T, color = "white", background = "red")

enter image description here

但这里我指定了行号,但我不想这样做。应根据气缸数自动决定。使用 cell_spec,我可以获得以下信息:

mtcars |> 
slice(1:5) |>
select(mpg:wt) |>
rownames_to_column('cars') %>% # used to store row names (mutate deletes them)
mutate(
cyl = cell_spec(cyl, color = ifelse(cyl > 6, "white", "black"),
background = ifelse(cyl > 6, "red", "white"),
bold = ifelse(cyl > 6, T, F))) %>%
column_to_rownames('cars') %>% # used to put row names back in place
kable(escape = F, booktabs = T) %>%
kable_styling()

enter image description here

但这仅更改圆柱列中的值,而不更改该行的其余部分。

我的问题有解决方案吗(最好不指定每个样式选项的条件)?

编辑:这是一个与 this one 不同的问题,其中有人想要根据该列中的值格式化该列,但希望排除某些行/条目。我不想排除任何行,但我希望格式适用于整行(仍然以特定列中的值为条件)。

最佳答案

我认为最简单的方法是根据您的标准传递要着色的行列表。

library(kableExtra)

df<- mtcars
color.me <- which(df$cyl >6)

df %>%
kable(booktabs = T) %>%
kable_styling() %>%
row_spec(color.me, bold = T, color = "white", background = "red")

或在同一管道中:

df %>% 
kable(booktabs = T) %>%
kable_styling() %>%
row_spec(which(df$cyl >6), bold = T, color = "white", background = "red")

关于r - 根据单元格值使用 kableExtra 为行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53341155/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com