Gostaria de colorir células condicionalmente com base em uma coluna diferente usando gt
o pacote. Tentei usar o rows
argumento para colorir condicionalmente, mas não funcionou. Aqui, tentei um exemplo reproduzível:
library(gt)
library(dplyr)
head(mtcars) %>%
gt() %>%
data_color(
columns = cyl,
rows = vs == 0,
palette = c("red", "green")
)
Saída:
Como você pode ver, a cor não está correta, assim como os outros valores. Deveria ser vermelho se vs for 0 e verde se vs for 1. Alguém sabe como podemos colorir condicionalmente esses valores com base em uma coluna diferente no gt?
Usar
target_columns=
.Pense no uso de
rows=
como um componente de filtragem , ele limita quais linhas são afetadas pela coloração, não como as cores são atribuídas.A propósito, tentei mentalmente supor que isso
palette=
poderia suportar um vetor nomeado de uma forma queggplot2::scale_*_manual(values=)
suporte, mas não é automático... você precisa usar issofn=
se quiser controlar qual valor/nível vai para qual cor.Não sei se existe um
scales::
equivalente que manipuleNA
valores corretamente.Pode haver uma maneira mais eficiente, mas que tal aplicar os estilos diretamente assim:
OU