使用 gt 对其进行分组后,我在选择列时遇到问题。我制作了一些假数据来复制我想做的事情。
grade_level <- c("1st","1st","1st","1st", "2nd", "2nd", "2nd", "2nd", "3rd", "3rd", "3rd", "3rd",
"4th","4th","4th","4th", "5th", "5th", "5th", "5th")
group <- c("District level girls", "District level boys", "State level girls", "State level boys",
"District level girls", "District level boys", "State level girls", "State level boys",
"District level girls", "District level boys", "State level girls", "State level boys",
"District level girls", "District level boys", "State level girls", "State level boys",
"District level girls", "District level boys", "State level girls", "State level boys")
nmbr_A <- sample(1:30, 20)
nmbr_B <- sample(1:30, 20)
nmbr_C <- sample(1:30, 20)
table_data <- cbind(grade_level, group, nmbr_A, nmbr_B, nmbr_C)
gt(table_data,
rowname_col = "group",
groupname_col = "grade_level") %>%
tab_options(row_group.as_column = TRUE) %>%
data_color(columns = 2,
method = "factor",
palette = c("#347f7f", "#63b5b5", "#a97298", "#6c395c"))
我想为包含州或地区级女孩或男孩的列着色,但分组后我不知道如何选择该列。它甚至不再有名称(我也不知道如何向其添加列名称)。
如果您使用
columns = everything()
,您会看到分组变量或 stub
没有着色。我相当确定您不能使用该函数来为存根列着色。
您可以使用
tab_style
为存根着色。
由于
tab_style
中只能指定一种颜色,因此需要使用4次。我使用 lapply
创建了四种颜色集。
我将你的颜色设置为一个独立的对象,这样我就可以在
lapply
中调用它们。
lapply
的每次迭代都相当于group
中的唯一条目之一。
为了收集适用的行,我使用了
seq
,从lapply的当前迭代开始,by
:唯一标签的数量(这里有4个),以及length.out
:中唯一条目的数量grade_level
—另一个分组变量(这里有 5 个)。
如果您有任何疑问,请告诉我。
library(gt)
library(tidyverse)
gtt <- gt(table_data,
rowname_col = "group",
groupname_col = "grade_level") %>%
tab_options(row_group.as_column = TRUE) # without data_color()
clr = c("#347f7f", "#63b5b5", "#a97298", "#6c395c") # color list from question
invisible(lapply(1:length(unique(group)), function(j) { # for each unique entry in group
gtt <<- gtt %>% # add each tab_style to table
tab_style(style = cell_fill(color = clr[j]), # seq through colors
locations = cells_stub(
rows = seq(from = j, # start from current iteration
by = length(unique(group)), # by unique entries
length.out = length(unique(grade_level)))) # by grade level
)
}))
gtt # let's see what we've got