Ручное определение ограничений styleColorBar в DT - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь создать параллельные таблицы данных в R с помощью пакета DT и заштриховать фон ячеек с помощью функции styleColorBar, показанной внизу этой страницы . Однако я хочу, чтобы размер полосы был пропорционален абсолютному значению, а не только значениям в таблице. Например, если бы я сделал две таблицы из данных ниже

data_1 <- data.frame("Team" = c("Alex", "Beth", "Charlie", "Diane"),
   "Spending_Q1" = c(1000, 500, 1500, 1000))


data_2 <- data.frame("Team" = c("Alex", "Beth", "Charlie", "Diane"),
   "Spending_Q2" = c(3000, 500, 500, 500))

, я бы хотел, чтобы в ячейке с 3000 была самая длинная фоновая полоса, а в ячейке с 1500 - полоса вдвое меньше *. 1006 *

Возможно ли это, или столбцы всегда пропорциональны наибольшему значению только в той же таблице данных?

1 Ответ

0 голосов
/ 28 мая 2020

Вы можете указать это в абсолютных значениях следующим образом:

library(DT)
data_1 <- data.frame("Team" = c("Alex", "Beth", "Charlie", "Diane"),
                     "Spending_Q1" = c(1000, 500, 1500, 1000))

data_2 <- data.frame("Team" = c("Alex", "Beth", "Charlie", "Diane"),
                     "Spending_Q2" = c(3000, 500, 500, 500))

datatable(data_1) %>% formatStyle(names(data_1),
                              background = styleColorBar(1:3000, 'lightblue'),
                              backgroundSize = '98% 88%',
                              backgroundRepeat = 'no-repeat',
                              backgroundPosition = 'center')
datatable(data_2) %>% formatStyle(names(data_2),
                                  background = styleColorBar(1:3000, 'lightblue'),
                                  backgroundSize = '98% 88%',
                                  backgroundRepeat = 'no-repeat',
                                  backgroundPosition = 'center')

Это то, что вы искали?

...