Here is an example code where I try to display 4 tables, tables on the second row are too close from tables on the first row, is there any way I can separate them?
I would also like row names to all be aligned and centered, The last row name is never aligned with the other ones.
```{r, echo=FALSE, warning= FALSE}
ex <- data.frame(B=c(10,5,12,4),
W=c(20,2,6,7))
row.names(ex) <- c("D", "E","A","B")
```
```{r, echo=FALSE, warning=FALSE}
#| label: tbl-ConfusionMatrices
#| tbl-cap: "Confusion matrices for each tool with the confusion matrix for ROI 1 and the with combined ROIs"
#| tbl-subcap:
#| - "Tool K1"
#| - "Tool K2"
#| - "Tool K3"
#| - "Tool K3"
library(kableExtra)
library(knitr)
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs"))
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs"))
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs"))
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs"))
```
You can create some space between tables using negative value in layout
chunk option. From the Quarto documentation on Custom Layout,
The layout attribute is a 2-dimensional array where the first dimension defines rows and the second columns. In this case "layout="[[1,1], 1]" translates to: create two rows, the first of which has two columns of equal size and the second of which has a single column.
You can also use negative values to create space between elements.
And the last row name B
doesn't align with others because it is not packed under ROIs
. So if you intend to pack both rows A
and B
under ROIs
, then simply use the named vector c("ROI1" = 2, "ROIs" = 2)
.
---
title: "Kable Table alignment"
format: pdf
---
## Quarto
```{r, echo=FALSE, warning= FALSE}
ex <- data.frame(B=c(10,5,12,4),
W=c(20,2,6,7))
row.names(ex) <- c("D", "E","A","B")
```
```{r, echo=FALSE, warning=FALSE}
#| label: tbl-ConfusionMatrices
#| tbl-cap: "Confusion matrices for each tool with the confusion matrix for ROI 1 and the with combined ROIs"
#| tbl-subcap:
#| - "Tool K1"
#| - "Tool K2"
#| - "Tool K3"
#| - "Tool K3"
#| layout: '[[1,1], [-1], [1,1]]'
library(kableExtra)
library(knitr)
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs" = 2))
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs" = 2))
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs" = 2))
kable(ex)%>% pack_rows( index = c("ROI1" = 2, "ROIs" = 2))
```