R语言 如何在m x n网格中显示多个可显示表?

yvgpqqbh  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(95)

我有6个表,我希望他们在一个网格显示3 × 2.我一直在使用Kable来显示我的表,这对我来说工作得相当好,但是当我将表作为列表传递到Kables时,它只能水平地显示它们。
使用以下代码作为示例:

t1 <- mtcars[1:3,]
t2 <- mtcars[4:6,]
t3 <- mtcars[7:9,]
t4 <- mtcars[10:12,]
t5 <- mtcars[13:15,]
t6 <- mtcars[16:18,]
kable(list(t1,t2,t3,t4,t5,t6)) %>% kable_styling()

所有6张table都水平排列。有没有办法把这3x2的东西叠起来?

gopyfrb3

gopyfrb31#

我认为您可以使用knitr包中的kablekableExtra功能的组合。
首先,对于每一行,我们可以使用kablepack_rows水平地合并合并表格。然后,我们垂直地合并组合行。
这是我得到的一个例子:

library(knitr)
library(kableExtra)

t1 <- mtcars[1:3,]
t2 <- mtcars[4:6,]
t3 <- mtcars[7:9,]
t4 <- mtcars[10:12,]
t5 <- mtcars[13:15,]
t6 <- mtcars[16:18,]

# Create individual tables
k1 <- kable(t1, caption = "t1", format = "html") %>% kable_styling(bootstrap_options = c("striped"))
k2 <- kable(t2, caption = "t2", format = "html") %>% kable_styling(bootstrap_options = c("striped"))
k3 <- kable(t3, caption = "t3", format = "html") %>% kable_styling(bootstrap_options = c("striped"))
k4 <- kable(t4, caption = "t4", format = "html") %>% kable_styling(bootstrap_options = c("striped"))
k5 <- kable(t5, caption = "t5", format = "html") %>% kable_styling(bootstrap_options = c("striped"))
k6 <- kable(t6, caption = "t6", format = "html") %>% kable_styling(bootstrap_options = c("striped"))

# Combine horizontally for each row
row1 <- cbind(k1, k2) %>% kable_styling()
row2 <- cbind(k3, k4) %>% kable_styling()
row3 <- cbind(k5, k6) %>% kable_styling()

# Combine rows vertically
grid <- rbind(row1, row2, row3)

grid

这种方法应该将表格排列在3x2网格中。样式和引导选项仅用于说明目的,您可以根据需要对其进行调整。

相关问题