kableExtra: Как я могу установить жирным шрифтом наибольшее значение строки? - PullRequest
0 голосов
/ 23 апреля 2020

Предположим, у меня есть таблица, которая выглядит следующим образом:

x = matrix(runif(10*5),nrow=10,ncol=5)

Когда я отображаю матрицу, используя kableextra, я хочу самое высокое значение для каждой строки, скажем, последних 2 строк, быть жирным шрифтом.

Я много смотрел на этот документ https://rdrr.io/cran/kableExtra/f/inst/doc/awesome_table_in_pdf.pdf и не нашел, как правильно использовать cell_spe c для достижения этой цели.

1 Ответ

2 голосов
/ 23 апреля 2020

Я думал, что это будет проще, чем оказалось. Насколько я понимаю, это то, как это сделать:

---
title: "Untitled"
output:  pdf_document
---

```{r}
set.seed(123)
library(knitr)
library(kableExtra)
x <- matrix(round(runif(10*5),2), nrow=10,ncol=5)
j1 <- which.max(x[9,])
j2 <- which.max(x[10,])
col <- seq_len(ncol(x))
x[9,] <- x[9,] %>% cell_spec(bold = col == j1)
x[10,] <- x[10,] %>% cell_spec(bold = col == j2)
x %>% kable(booktabs = TRUE, escape = FALSE)
```

Несколько замечаний:

  • Я округлил значения, чтобы они не были так безобразны при печати.
  • Я не мог найти способ сделать все в одном конвейере, хотя, вероятно, есть один. Проблема в том, что cell_spec предназначен для работы с векторами, а не с матрицами.
  • Наконец, escape = FALSE в kable() имеет важное значение: в противном случае вы увидите код, который сделает его жирным, а не саму жирную запись.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...