R彩色单元格,如果gt_tbl中的值为NA

问题描述

我正在使用gt R包来创建格式化的表输出。我已经能够通过蛮力方法完成格式化,但是我想知道是否有更好的方法我有四个不同的列,其中包含数值和NA。我想用白色文本为所有包含NA的单元格上色,以使NA不可见。

这是我能够上班的代码。是否有更雄辩的方式来编写tab_style columnsrows,所以我不需要在每一列重复tab_style

    # Create gt_tbl for png file in proper formatting
  gt_tbl <- Data_OUT %>%
    dplyr::filter(`Trade Value` > 0) %>%
    dplyr::tibble() %>% 
    gt(rowname_col = "Player.Value") %>%
    data_color(
      columns = colnames(Data_OUT)[grep("Trend",colnames(Data_OUT))],colors = scales::col_numeric(
        palette = c("red","green"),domain = c(min(Data_OUT[,grep("Trend",na.rm = TRUE),max(Data_OUT[,na.rm = TRUE)))) %>%
    tab_spanner_delim(delim = ".",gather = TRUE) %>%
    tab_style(style = list(cell_text("white"),cell_fill("white")),locations = cells_body(
                columns = vars(`Running Back.Trend`),rows = is.na(`Running Back.Trend`))
              ) %>%
    tab_style(style = list(cell_text("white"),locations = cells_body(
                columns = vars(`Wide Receiver.Trend`),rows = is.na(`Wide Receiver.Trend`))
    ) %>%
    tab_style(style = list(cell_text("white"),locations = cells_body(
                columns = vars(`Tight End.Trend`),rows = is.na(`Tight End.Trend`))
    ) %>%
    tab_style(style = list(cell_text("white"),locations = cells_body(
                columns = vars(`Quarterback.Trend`),rows = is.na(`Quarterback.Trend`))
    ) %>%
    tab_header(
      title    = md("**Reddit Adjusted Fantasy Football Trade Values**"),subtitle = md(paste("<b>Analysis type:  ",analysis,"</b>","<br /> u/PeakedinHighSkool&emsp;&emsp;","&emsp;&emsp;&emsp;&emsp;","Updated:  ",today_pretty))
    )  %>%
    tab_stubhead(
      label = "Values"
    )

我包含了最终输出摘要。顶部突出显示,以便您可以查看NA值。

Screen shot of output

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)