在revealjs夸托中对齐r-stack布局表

xytpbqjk  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(95)

我想在.r-stack布局中fragment两个Kable表。问题是,当第二个表获得彩色值时,表在叠加后不再对齐,因此它显示了两次列。下面是一些可重复的代码:

---
title: "Align r-stack tables in revealjs"
format: revealjs
---

## Slide

```{r}
library(knitr)
library(kableExtra)

::: {.r-stack}

::: {.fragment}

kbl(head(iris), booktabs = TRUE, escape = FALSE) |>
  kable_styling(font_size = 15)

:::

::: {.fragment}

iris = head(iris)
iris$Sepal.Width = cell_spec(head(iris$Sepal.Width), background = ifelse(head(iris$Sepal.Width) == 3.2, "red", "white"), align = 'initial')
head(iris) |>
  kbl(booktabs = TRUE, escape = FALSE) |>
  kable_styling(font_size = 15) 

:::

:::


输出:

![](https://i.stack.imgur.com/7ZWAT.png)

正如你所看到的第二个表的颜色值的萼片.宽度不会得到堆叠在第一个表.所以我想知道,如果有人知道如何对齐以及两个表与r-stack布局在revealjs夸托?
yptwkmov

yptwkmov1#

问题是,在应用cell_spec后,列不再是数字列,因此默认情况下向左对齐。因此,第一步是将列向右对齐。然而,即使这样做,也会有一个小的差异,因为添加背景会增加一些填充,此外,小数点后的零被丢弃。我不是kableExtra方面的Maven,但解决这些问题的一个方法是在第一个表中也使用cell_spec(但请注意,第二列的右侧仍然有一些填充):

---
title: "Align r-stack tables in revealjs"
format: revealjs
---

```{r}
library(knitr)
library(kableExtra)

Slide

::: {.r-stack}

::: {.fragment}

iris2 <- head(iris)
iris2$Sepal.Width <- cell_spec(iris2$Sepal.Width, background = "white")
iris2 |> 
  kbl(booktabs = TRUE, escape = FALSE, align = "rrrrl") |>
  kable_styling(font_size = 15)

:::

::: {.fragment}

iris2 <- head(iris)
iris2$Sepal.Width <- cell_spec(iris2$Sepal.Width, background = ifelse(iris2$Sepal.Width == 3.2, "red", "white"))
iris2 |>
  kbl(booktabs = TRUE, escape = FALSE, align = "rrrrl") |>
  kable_styling(font_size = 15)

:::

:::


![](https://i.stack.imgur.com/aNNTm.png)

相关问题