таблица с длинным текстом, точками с маркерами и определенной шириной таблицы - PullRequest
0 голосов
/ 24 октября 2018

Я хочу, чтобы таблица имела маркеры в одном столбце и имела определенную ширину таблицы (чтобы ее можно было разместить на одной странице при визуализации в PDF).

Как этого добиться в rmarkdown используя один из множества пакетов?


Что я пробовал и до сих пор:

---
output: pdf_document
---

```{r, include = FALSE}
df <- data.frame(col1 = "Some really long text here. I mean some reeeeeaaly loooong text. So long, it should be wrapped. Really.",
                 col2 = "* bullet point 1\n * bullet point 2", col3 = "Yes, there is still another column.")
```

# Attempt 1: kableExtra
```{r, echo = FALSE, warning = FALSE}
library(kableExtra)
df1 <- df
df1$col2 <- linebreak(df1$col2)
knitr::kable(df1, escape = FALSE) %>% column_spec(1, width = "15em")
```

# Attempt 2: pander
```{r, echo = FALSE}
pander::pander(df, keep.line.breaks = TRUE, style = 'grid', justify = 'left')
```

Это делает:

enter image description here

Как видите, оба варианта имеют оговорки.Версия kableExtra имеет определенную ширину таблицы, которая умещается на одной странице, но не показывает маркеры.Принимая во внимание, что решение pander хорошо отображает маркеры, но охватывает несколько страниц, потому что я не знаю, как указать ширину таблицы в pander.

. Есть ли решение, которое может сделать и то и другое?

Смежные вопросы, например: здесь и там .

1 Ответ

0 голосов
/ 24 октября 2018

Используйте параметр split.table pandoc.table (который вызывается pander в фоновом режиме) или отключите разделение таблицы в целом с помощью panderOptions 'table.split.table, например,

pander::pander(df, keep.line.breaks = TRUE, style = 'grid', justify = 'left', split.table = Inf)

или

library(pander)
panderOptions('table.style', 'grid')
panderOptions('table.alignment.default', 'left')
panderOptions('table.split.table', Inf)
panderOptions('keep.line.breaks', TRUE)
pander(df)

pander example

...