Я использую пакет kableExtra
для создания длинной таблицы в документах с уценкой R, связанных с PDF.
Наборы строк таблицы сгруппированы вместе с использованием kableExtra::pack_rows()
(ранее kableExtra::group_rows()
)
Возникают две проблемы:
Если последняя строка формирует набор, ее группировка не отображается, если одна
наборов longtable = TRUE
, чтобы длинная таблица могла занимать несколько страниц
и одновременно
использует kable_styling(..., latex_options = c("repeat_header"))
для повторения заголовка таблица на каждой странице.
Текст в некоторых строках моего первого столбца слишком длинный для ширины столбца (что необходимо исправить). Таким образом, он переносится в следующую строку. Однако любой переносимый текст больше не имеет отступа. Увеличение ширины столбца таким образом, чтобы текст, к сожалению, не подходил для моего варианта использования.
Я попробовал решение minipage, предложенное в этом сообщении SO , чтобы решить проблему 2). Это работает, если первый столбец установлен достаточно широким через column_spec(1, width = "XXXem")
). Однако в моем случае я не могу установить его слишком широко, чтобы он работал таким образом.
Если нет другого, чтобы отступить от содержимого обернутой строки, можно ли в качестве альтернативы удалить отступ в целом ?
MWE и иллюстрации представлены ниже.
Либо longtable = FALSE
, либо нет latex_options = c("repeat_header"))
==> Pack-rows работает
longtable = TRUE
И latex_options = c("repeat_header"))
==> Pack-строки не работают
![Longtable-TRUE_Pack-rows-NOT-WORKING](https://i.stack.imgur.com/XeuRt.png)
---
title: "MWE"
output:
pdf_document: default
html_document: default
---
```{r echo=FALSE}
library(knitr)
library(kableExtra)
dt <- mtcars[1:3, 1:2]
kable(dt,
escape = FALSE, # to be able to include latex commands
booktabs = T,
longtable = TRUE, # allow long table to span multiple pages
) %>%
kable_styling(full_width = F,
latex_options = c(
"repeat_header" # repeat header of long table
)
) %>%
# column characteristics: set widths
column_spec(1, width = "2cm") %>%
# group rows together and give these groups labels
pack_rows("Mazda Cars", 1, 2) %>%
pack_rows("Datsun Cars", 3, 3)
```