Как использовать условное форматирование во флейте по строкам (а не целым столбцам)

Попытка использовать функцию scale :: col_numeric в flextable для условного форматирования только части таблицы.

Используя собственную документацию flextable:

library(flextable)

ft_2 <- flextable(head(iris))
colourer <- col_numeric(
  palette = c("wheat", "red"),
  domain = c(0, 7))


bg(ft_2, 
   j = c("Sepal.Length", "Sepal.Width",
         "Petal.Length", "Petal.Width"),
   bg = colourer)


Но если отформатировать только первые 2 строки, это приведет к ошибке.

bg(ft_2, 
   i = 1:2,
   j = c("Sepal.Length", "Sepal.Width",
         "Petal.Length", "Petal.Width"),
   bg = colourer)

Ошибка в x $ data [i, j] ‹- значение: количество заменяемых элементов не кратно длине замены

Использование функции debug () в цвете показывает, что x - это весь столбец, а не первые 2 строки.

Любая помощь приветствуется.


person cavamic    schedule 01.06.2021    source источник


Ответы (1)


Это может быть проблема с packageVersion('flextable'), поскольку он отлично работает с (0.6.6) и packageVersion('scales') 1.1.1`

library(flextable)
ft_2 <- flextable(head(iris))
colourer <- col_numeric(
  palette = c("wheat", "red"),
  domain = c(0, 7))

bg(ft_2, 
    i = 1:2,
    j = c("Sepal.Length", "Sepal.Width",
          "Petal.Length", "Petal.Width"),
    bg = colourer)

-выход

введите описание изображения здесь

person akrun    schedule 01.06.2021