У меня проблемы с созданием красиво отформатированной таблицы в R
. Я нахожусь на 90% пути, но не могу пройти весь путь.
Мне нужно окрасить всю ячейку в цвет фона, как показано в примере ниже. Я прочитал kable
виньетку и увидел, что в формате html background
не окрашивает всю ячейку. Есть ли способ обойти это? Вместо этого я попытался установить его на латекс, но результат был латексным, а не отображался в средстве просмотра. Я также начинающий markdown
пользователь, поэтому, когда я попробовал это там, результат оказался не тем, на что я надеялся (это просто автономная таблица).
Я много искал в SO решение, но так и не смог его найти. Конечно, создавать таблицы в R
непросто. Любая помощь будет оценена по достоинству.
Образец данных:
library(tidyverse)
df <- structure(list(Indicator = c("Var1", "Var2", "Var3", "Var4", "Var5"
), Sign = c(-1L, 1L, 1L, -1L, 1L), Freq = c("M", "A", "Q", "M",
"M")), row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"))
df
# A tibble: 5 x 3
Indicator Sign Freq
<chr> <int> <chr>
1 Var1 -1 M
2 Var2 1 A
3 Var3 1 Q
4 Var4 -1 M
5 Var5 1 M
Попытка кода:
library(kable)
library(kableExtra)
df %>%
dplyr::rename(Trend = Freq) %>%
mutate(Indicator = cell_spec(Indicator, "html", color = "black", bold = T),
Trend = cell_spec(Trend, "html", color = "white", bold = T,
background = factor(Sign, c(-1, 0, 1),
c("red", "gray", "green")))) %>%
select(Indicator, Trend) %>%
kable(align = c('l', 'c'), format = "html", escape = F) %>%
kable_styling(bootstrap_options = c("bordered", full_width = F, font_size = 16)) %>%
row_spec(0, background = "rgb(172, 178, 152)", color = "black", font_size = 18)