Программный формат числовых столбцов в формате данных - PullRequest
0 голосов
/ 01 марта 2019

Я ищу цветовой формат каждого числового столбца, чтобы он отображал синюю полосу в зависимости от диапазона каждого столбца.Вот фото того, чего я пытаюсь добиться.enter image description here

#Here is the the table I have so far.
#I am adding filters to the columns. This works great

library(DT)
library(magrittr)
df = datatable(iris, filter = 'top', options = list(pageLength = 5, autoWidth = TRUE))

#I try to add the blue bars here to the first 2 numeric columns

df %>%formatStyle(names(df)[1:2],
            background = styleColorBar(range(df[,1:2]), 'lightblue'),
            backgroundSize = '98% 88%',
            backgroundRepeat = 'no-repeat',
            backgroundPosition = 'center')
Error in df[, 1:2] : incorrect number of dimensions

Было бы также неплохо, если бы была функция автоматического размещения синих полос на всех числовых столбцах.Заранее спасибо

1 Ответ

0 голосов
/ 01 марта 2019

Есть несколько вещей, которые вы можете улучшить:

  • Программно определять числовые столбцы (передать sapply(iris, is.numeric) результат).
  • Для форматирования стиля вам необходимо передать исходную таблицу (iris вместо df).df может иметь разные столбцы из-за имен строк.
  • К styleColorBar также передается исходная таблица вместо df.

Код:

library(magrittr)
library(DT)

# Specify numeric columns
foo <- sapply(iris, is.numeric)

datatable(iris, filter = 'top', options = list(pageLength = 5, autoWidth = TRUE)) %>%
    formatStyle(names(iris)[foo],
            background = styleColorBar(range(iris[, foo]), 'lightblue'),
            backgroundSize = '98% 88%',
            backgroundRepeat = 'no-repeat',
            backgroundPosition = 'center')

Результат:

enter image description here

...