Cómo añadir dos tablas con el mismo número de columnas en kableExtra?
Estoy intentando crear una tabla grande agregando varias tablas pequeñas con el mismo número de columnas utilizando kableExtra. Específicamente, supongamos que tengo los siguientes conjuntos de datos y kables:
“`{r}
library(kableExtra)
df1 <- data.frame(x = c("a","b"), y=1:2)
df2 <- data.frame(x = c("c","d"), y=3:4)
k1 <- kable(df1, format = 'latex') |>
add_header_above(c("Header 1 " = 2))
k2 <- kable(df2, format = 'latex') |>
add_header_above(c("Header 2" = 2))
<pre><code><br />Me gustaría unir k1 y k2 en la misma tabla, obteniendo como resultado:
“`{latex}
\begin{tabular}{l|r}
\hline
\multicolumn{2}{c}{Header 1 } \\
\cline{1-2}
x & y\\
\hline
a & 1\\
\hline
b & 2\\
\hline
\multicolumn{2}{c}{Header 2} \\
\cline{1-2}
x & y\\
\hline
c & 3\\
\hline
d & 4\\
\hline
\end{tabular}
Esto se traduciría en:
Sin embargo, no me gustaría unir los data frames, ya que provienen de diferentes agrupaciones. ¿Alguien puede ayudarme?
davy.ai
Para combinar las dos kables en una tabla grande sin unir los data frames, puedes usar la función
bind_rows()
del paquetedplyr
para combinar los data frames, y luego usarkable()
yadd_header_above()
para crear la tabla con encabezados.Aquí tienes un ejemplo:
“`{r}
library(dplyr)
df_combined <- bind_rows(df1, df2) # combinar los data frames
k_combined <- kable(df_combined, format = 'latex') %>%
add_header_above(c(“Encabezado 1” = 2, “Encabezado 2” = 2)) # agregar los encabezados
k_combined # imprimir la tabla
Y la tabla se verá así: