kableExtra :: pack_rows () - не работает группировка для последней строки в длинной таблице и нет отступа для обернутого текста - PullRequest
0 голосов
/ 18 июня 2020

Я использую пакет kableExtra для создания длинной таблицы в документах с уценкой R, связанных с PDF.

Наборы строк таблицы сгруппированы вместе с использованием kableExtra::pack_rows() (ранее kableExtra::group_rows())

Возникают две проблемы:

  1. Если последняя строка формирует набор, ее группировка не отображается, если одна

    • наборов longtable = TRUE, чтобы длинная таблица могла занимать несколько страниц

      и одновременно

    • использует kable_styling(..., latex_options = c("repeat_header")) для повторения заголовка таблица на каждой странице.

  2. Текст в некоторых строках моего первого столбца слишком длинный для ширины столбца (что необходимо исправить). Таким образом, он переносится в следующую строку. Однако любой переносимый текст больше не имеет отступа. Увеличение ширины столбца таким образом, чтобы текст, к сожалению, не подходил для моего варианта использования.

Я попробовал решение minipage, предложенное в этом сообщении SO , чтобы решить проблему 2). Это работает, если первый столбец установлен достаточно широким через column_spec(1, width = "XXXem")). Однако в моем случае я не могу установить его слишком широко, чтобы он работал таким образом.

Если нет другого, чтобы отступить от содержимого обернутой строки, можно ли в качестве альтернативы удалить отступ в целом ?

MWE и иллюстрации представлены ниже.

Либо longtable = FALSE, либо нет latex_options = c("repeat_header")) ==> Pack-rows работает

Longtable-FALSE_Pack-rows-WORKING

longtable = TRUE И latex_options = c("repeat_header")) ==> Pack-строки не работают

Longtable-TRUE_Pack-rows-NOT-WORKING

---
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)
```
...