【发布时间】:2021-05-15 04:59:24
【问题描述】:
我正在使用 kable 和 kableExtra,并希望显示一个包含百分比列的表格(格式为“95%”)。我还想根据百分比值(具有多种颜色和切点)对单元格背景进行条件格式化。此外,还混入了一些 NA。
我尝试了this post 中的一些方法,但不喜欢不给整个单元格着色的cell_spec 背景着色,所以更愿意在kable 中使用column_spec。然而,我发现显示百分比的所有选项都将百分比转换为字符变量,这限制了我进行条件格式设置的能力。
当我简化示例代码以在此处发布时(经过几个小时的错误),我终于使用 startWith 让它工作了(在这种情况下这是一个不错的解决方案,因为我的切点在 80% 和 90%,但是并不适合所有情况)。
df <- tibble(
x=c(1:6),
percents =c (1, .95, .82, .77, .62, NA)
)
df$percents <- percent(df$percents, accuracy = 1)
kable(df, booktabs=TRUE, escape=FALSE ) %>%
kable_styling() %>%
column_spec(2, background = if_else(startsWith(df$percents, '100'), "Darkgrey",
if_else(startsWith(df$percents, '9'), "Darkgrey",
if_else(startsWith(df$percents, '8'), "silver", "lightgray",
"white"), "white"), "white"))
我很好奇是否有人对此有另一种解决方案,可以保留将百分比值作为数字而不是字符的能力。
谢谢!
【问题讨论】:
标签: r percentage conditional-formatting kable kableextra