我的问题类似于这个previous post,因为我想有条件地格式化某些值,而忽略NA.我发现NA被cell_spec()后面的单元规范覆盖,结果options(knitr.kable.NA = '')不工作.有人能帮忙吗?示例数据如下.

library(tidyverse)
library(kableExtra)

df <- data.frame(
  name = paste("Name", LETTERS[1:10]),
  var1 = c(0.5, -1.3, NA, 3.4, -2.6, 0.8, NA, 0.3, 2, -1.6)
  )

df_fill <- df %>%
  mutate(var1 = cell_spec(
    var1,
    background = case_when(
      var1 >= 1 ~ "#FEDCDA",
      var1 <= -1 ~ "#E5F8E0",
      .default = "white")
    )
    )

options(knitr.kable.NA = '')

kbl(df_fill,
    booktabs = TRUE,
    escape = FALSE,
    linesep = "") %>%
  kable_styling(latex_options = c("HOLD_position"),
                font_size = 8)

推荐答案

如果你的变量不是NA,则只应用cell_spec:

df_fill <- df %>%
  mutate(var1 = case_when(!is.na(var1) ~ cell_spec(
    var1,
    background = case_when(var1 >= 1 ~ "#FEDCDA",
                           var1 <= -1 ~ "#E5F8E0",
                           .default = "white")
  )))

enter image description here

R相关问答推荐

过滤矩阵以获得R中的唯一组合

以R为基数排列奇数个图

使用tidyverse方法绑定行并从一组管道列表执行左连接

gt()从gt为相同内容的单元格 colored颜色 不同?

gganimate在使用shadow_mark选项时不保留所有过go 的标记

计算具有奇数日期的运行金额

传递ggplot2的变量作为函数参数—没有映射级别以正确填充美学

使用带有OR条件的grepl过滤字符串

为左表中的所有行使用值Fill滚动左连接

从R中发出的咕噜声中的BUG?

自动STAT_SUMMARY统计与手动标准误差之间的差异

减go R中列表的所有唯一元素对

我是否可以使用多个变异项来构建顺序列(标记多个问题)

使用gt_summary是否有一种方法来限制每个变量集进行配对比较?

创建在文本字符串中发现两个不同关键字的实例的数据框

如何从嵌套数据中自动创建命名对象?在R中

替换在以前工作的代码中有x行&q;错误(geom_sf/gganimate/dow_mark)

子样本间系数检验的比较

使用显式二元谓词子集化sfc对象时出错

为什么在POSIXct-times的向量上循环会改变R中的类型?