Можно ли комбинировать форматирование со строкой kableextra? - PullRequest
0 голосов
/ 16 января 2019

Глядя на это актуально виньетка:

С кодом:

library(tidyverse)
library(knitr)
library(kableExtra)
library(formattable)

set.seed(1)
data.frame(letters = letters[1:5],
           foo = rnorm(5, 20),
           bar = rnorm(5, 20),
           baz = rnorm(5, 20),
           bash = rnorm(5, 20)) %>%
    mutate(foo = color_tile("pink", "lightblue")(foo)) %>%
    kable(escape = F) %>%
    kable_styling("hover", full_width = F) %>%
    column_spec(5, width = "3cm") %>%
    add_header_above(c(" ", "Hello" = 2, "World" = 2))

Вы производите что-то вроде этого:

enter image description here

В конечном счете, я бы хотел использовать функцию color_tile из formattable по строкам - в моем собственном наборе данных мне нужно сравнивать значения по строкам, сохраняя структуру фрейма данных. Я попытался транспонировать фрейм данных, но он испортил мой код и данные, и я не думаю, что этот маршрут правдоподобен.

1 Ответ

0 голосов
/ 16 января 2019

Вы можете извлечь строки в цикле и запустить на них color_tile().

library(tidyverse)
library(knitr)
library(kableExtra)
library(formattable)

set.seed(1)
df <- data.frame(letters = letters[1:5],
           foo = rnorm(5, 20),
           bar = rnorm(5, 20),
           baz = rnorm(5, 20),
           bash = rnorm(5, 20),
           stringsAsFactors = FALSE)

for(i in 1:nrow(df)) df[i,] <- color_tile("pink", "lightblue")(df[i,])

df %>%
  kable(escape = F) %>%
  kable_styling("hover", full_width = F) %>%
  column_spec(5, width = "3cm") %>%
  add_header_above(c(" ", "Hello" = 2, "World" = 2))
...