在 gt 中:根据单元格和列的相对位置而不是文字列名称选择要格式化的单元格

In gt: Selecting cells to format based on relative positions of cells and columns, not a literal column name

在下面的示例中,table1 是一个工作示例,它直接在行规范中指定列名。这给出了我想要的结果,但我不想直接调用列名。相反,我想间接引用它们(因为我在许多相同维度但名称不同的 table 上使用此代码。table2 尝试这样做,但不起作用。是否有实现我的目标的正确方法?

df <- data.frame(colA = c(5, 10), colB = c(8, 9))
table1 <- df %>%
  gt() %>%
  tab_style(style = cell_text(color = "red"),
            locations = cells_body(columns = colB,
                                   rows = colB >8))
table1


table2 <- df %>%
  gt() %>%
  tab_style(style = cell_text(color = "red"),
            locations = cells_body(columns = ends_with("B"),
                                   rows = last_col() >8))
table2

您需要提供完整的select声明:

my_col <- names(df %>% select(ends_with("B")))

table2 <- df %>%
  gt() %>%
  tab_style(
    style = cell_text(color = "red"),
    locations = cells_body(
      columns = all_of(my_col),
      rows = !!sym(my_col) > 8))
table2