Создание таблицы rmarkdown с двойным вертикальным правилом при вязании в PDF

Следующий код создает файл PDF с таблицей при компиляции из R Studio. Есть ли способ, которым я могу вставить двойную вертикальную черту (правило) между переменными? Это было бы предпочтительно использовать pander но я не ограничен этим.

---
output: 
    pdf_document:
        fig_caption: yes
---

```{r}
pander::pander(cars[1:5,], 
               split.cell = 80, 
               split.table = Inf, 
               digits = 4, 
               caption = "Some Caption\\label{tab:sometable}",
               justify = c('right', 'left'))
```

введите описание изображения здесь


редактировать

Я пытался использовать htmlTable как предложено в ответах ниже. К сожалению, это не создает действительный код уценки, так что knitr может создать PDF, например

---
output: 
    pdf_document:
        fig_caption: yes
---

```{r}
library('htmlTable')
htmlTable(as.matrix(cars)[1:5, ], caption = 'Table 1: Some caption.',
          css.table = 'border-collapse: collapse; border-style: hidden; border-bottom: 1px;',
          css.cell = 'border-style: none double none none;')
```

производит: введите описание изображения здесь

3 ответа

Решение

Для pdf xtable будет моим предпочтительным выбором для отображения таблиц:

```{r results="asis",echo=FALSE,message=FALSE}
library(xtable)

print(xtable(as.matrix(cars)[1:5, ],align=c("rr||r"), caption="some caption"), include.rownames=FALSE)

```

Производит этот вывод:

Существуют различные варианты изменения таблицы: https://cran.r-project.org/web/packages/xtable/xtable.pdf

Вы можете попробовать htmlTable Макса Гордона

Его пример из виньетки:

htmlTable(txtRound(mx, 1), 
          col.columns = c(rep("#E6E6F0", 4),
                          rep("none", ncol(mx) - 4)),
          align="rrrr|r",
          cgroup = cgroup,
          n.cgroup = n.cgroup,
          rgroup = c("First period", 
                     "Second period",
                     "Third period"),
          n.rgroup = rep(5, 3),
                    tfoot = txtMergeLines("&Delta;<sub>int</sub> correspnds to the change since start",
                                "&Delta;<sub>std</sub> corresponds to the change compared to national average"))

Создает

Линии отделяют Швецию от остальных

+1 за htmlTable

library('htmlTable')
htmlTable(as.matrix(cars)[1:5, ], caption = 'Table 1: Some caption.',
          css.table = 'border-collapse: collapse; border-style: hidden; border-bottom: 1px;',
          css.cell = 'border-style: none double none none;')

Другие вопросы по тегам