Создание таблицы 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("Δ<sub>int</sub> correspnds to the change since start",
"Δ<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;')