在R中使用不同维度的数据框架创建一个堆叠的2x2表

ccgok5k5  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(107)

我试图在R中创建一组表格,这些表格可以是html或latex或pdf格式,所以我使用了kable。我想创建一个2行2列的表,每个单元格包含来自不同数据框的信息。我希望每个单元格的标题都有不同的信息。对我来说棘手的部分是表格有不同的,所以我希望单元格的宽度或长度与我指定的一样,这只会增加整个表格的宽度和高度。
基本上我希望它看起来像这样

目前为止我有这个代码

library(kableExtra)
df1 <- head(mtcars)
df2 <- head(iris)
df3 <- head(ChickWeight)
df4 <- head(airquality)

table1 <- kable(df1, format = "html") %>%
  kable_styling()
table2 <- kable(df2, format = "html") %>%
  kable_styling()
table3 <- kable(df3, format = "html") %>%
  kable_styling()
table4 <- kable(df4, format = "html") %>%
  kable_styling()

combined_table=kable(list(df1,df2, df3,df4), format="html") %>% 
  kable_styling() %>% 
  column_spec(column=1:4, border_left = T, border_right = T)

但是当 Dataframe 具有不同的列长度时,我无法rbind Dataframe 。那么我如何把它们放到不同的面板上。
我包含了我的代码,并希望它能够面板对象,但它没有。

y4ekin9u

y4ekin9u1#

下面是在quarto中使用网格布局的方法:

---
format: html
execute: 
  echo: false
---

```{r}
library(kableExtra)
df1 <- head(mtcars)
df2 <- head(iris)
df3 <- head(ChickWeight)
df4 <- head(airquality)

table1 <- kable(df1, format = "html") %>%
  kable_styling()
table2 <- kable(df2, format = "html") %>%
  kable_styling()
table3 <- kable(df3, format = "html") %>%
  kable_styling()
table4 <- kable(df4, format = "html") %>%
  kable_styling()

::: {.grid}

::: {.g-col-6}

Combined Table

table1

:::

::: {.g-col-6}

{}

table2

:::

:::

::: {.grid}

::: {.g-col-6}

table3

:::

::: {.g-col-6}

table4

:::

:::


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

相关问题