Сохранение различных форматов строк и столбцов в формате - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь использовать форматируемый пакет для создания необычной таблицы в R, но я столкнулся с блоком, пытающимся работать как со строками, так и со столбцами.Я хочу, чтобы определенные строки курсивом и определенные столбцы были окрашены в соответствии с правилом, но последний элемент в списке ввода formattable () имеет приоритет и стирает любые другие изменения формата.

Кто-нибудь знает способ обойти это?

Я пытался включить ссылки на столбец c0 в свой код для раскраски, но он не распознает эту ссылку.


library(tidyverse)
library(formattable)

df <- data.frame(c0 = c("This", "That", "This"),
                 v1 = 1:3/5, v2 = 4:6/7) %>% 
  mutate_at(vars(starts_with("v")), percent)

colouring <- function(color = "lightblue", fun = "percent", digits = 0) {
  fun = match.fun(fun)
  formatter("span", 
            x ~ fun(x, digits = digits),
            style = function(y) style(
              "background-color" = ifelse(y > 0.5, csscolor(color), csscolor("white"))
            ))
}

fonting <- formatter("span", style = x ~ style(font.style = "italic", color = "gray"))

# as is
formattable(df)

# with colour
formattable(df, list(
  area(col = 2:3) ~ colouring()))

# with italics
formattable(df, list(
  area(row = str_which(df$c0, "That")) ~ fonting))

# But using both does not preserve previous changes - - 
# colour first
formattable(df, list(
  area(col = 2:3) ~ colouring(),
  area(row = str_which(df$c0, "That")) ~ fonting
))
# italics first
formattable(df, list(
  area(row = str_which(df$c0, "That")) ~ fonting,
  area(col = 2:3) ~ colouring()
))

Я бы хотел, чтобы курсив сохранялся при применении правила цвета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...