У меня есть таблица gt в R, и я хочу раскрасить каждую строку в зависимости от процентной разницы с целью этой строки.
library(gt)
# Example dataset
mydata <- data.frame( Col1 = c(10, 12, 15, 8, 9),
Col2 = c(20, 22, 25, 18, 19),
Col3 = c(30, 32, 35, 28, 29),
Col4 = c(40, 42, 45, 38, 39),
Target = c(100, 105, 110, 95, 100)
)
mydata$Diff <- (mydata$Target - mydata[, 1:4]) / mydata$Target * 100
mytable <- mydata %>%
gt() %>%
data_color(scale = list(
Col1 = c("red","green"),
Col2 = c("red","green"),
Col3 = c("red","green"),
Col4 = c("red","green"),
Diff = c("red","green")
),
colors = "Diff",
apply_to = cells_body(columns = 1:5),
reverse_colors = TRUE )
mytable
Я пробовал data_color() безуспешно. Здесь с data_color я продолжаю получать «Ошибка в data_color (., Scale = list (Col1 = c («красный», «зеленый»)»),: неиспользованные аргументы». Я ожидаю градиент цвета для каждой строки
@SusanSwitzer, я пытаюсь раскрасить каждую ячейку по строкам на основе процентной разницы с целевым значением, и я с треском терплю неудачу и застреваю
Ни за что! Ты отлично справляешься! Вы хотите отображать как столбцы разницы, так и столбцы Col#?
@SusanSwitzer, это то, что я искал. Спасибо за вашу помощь. Следующим моим шагом было скрыть столбцы diff, и вы это тоже предвидели.
Интересно, будет ли этот код поддерживать ваши потребности. Я использовал библиотеку (tidyverse) для создания столбцов Diff, потому что я больше всего знаком с созданием новых столбцов с помощью этого подхода.
библиотека (gt)
mydata <- data.frame( Col1 = c(10, 12, 15, 8, 9), Кол2 = с(20, 22, 25, 18, 19), Кол3 = с(30, 32, 35, 28, 29), Кол4 = с(40, 42, 45, 38, 39), Цель = с(100, 105, 110, 95, 100) ) %>% мутировать ( DiffCol1 = (Цель -Col1)/Цель, DiffCol2 = (Цель -Col2)/Цель, DiffCol3 = (Цель -Col3)/Цель, DiffCol4 = (Цель -Col3)/Цель )
библиотека (gt) gt(мои данные) %>% data_color(столбцы = DiffCol1, target_columns = Col1, метод = "числовой", палитра = c('красный', 'зеленый') ) %>% cols_hide(DiffCol1:DiffCol4)
Пример с отображением столбцов различий
библиотека (gt) gt(мои данные) %>% data_color(столбцы = DiffCol1, target_columns = Col1, метод = "числовой", палитра = c('красный', 'зеленый') ) %>% data_color(столбцы = DiffCol2, target_columns = Col2, метод = "числовой", палитра = c('красный', 'зеленый') ) %>% data_color(столбцы = DiffCol3, target_columns = Col3, метод = "числовой", палитра = c('красный', 'зеленый') ) %>% data_color(столбцы = DiffCol4, target_columns = Col4, метод = "числовой", палитра = c('красный', 'зеленый') )
Я не совсем понимаю, что вы пытаетесь сделать, но помогает ли это? data_color (столбцы = Col1: Col4, метод = «числовой», палитра = c («красный», «зеленый»), домен = c (0, 50))