es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

En R y rmdformats, ¿cómo puedo controlar el ancho de la tabla kableExtra?

Estoy buscando una solución que me permita controlar la salida de una tabla kableExtra en un documento de rmdformats.

Corriendo un ejemplo como este, obtengo una tabla con una barra de desplazamiento horizontal en la parte inferior.

---
output:
  rmdformats::robobook:
  code_folding: show
  self_contained: true
  highlight: pygments
editor_options: 
  chunk_output_type: console
---

```{r}
library(kableExtra)
dt <- cbind(mtcars[1:5, 1:6],mtcars[1:5, 1:6])
```

```{r}
dt %>%
  kbl() %>%
  kable_styling()
```

Introdution image

Esto no funciona bien para tablas grandes y con tanto espacio alrededor, quería aumentar el ancho de la tabla.

Intenté experimentar con las opciones de los fragmentos de knitr, pero esto parece afectar solo a las figuras. Lo mismo ocurre con las opciones de rmdformats. ¿Se necesita algo de CSS?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para controlar la salida de una tabla kableExtra en un documento rmdformats, puedes usar CSS para ajustar el ancho de la tabla.

    Primero, agrega una clase a la tabla utilizando el argumento kable_class en la función kbl():

    “`{r}
    dt %>%
    kbl() %>%
    kable_styling() %>%
    column_spec(1:ncol(dt), width = “150px”) %>%
    add_header_above(c(” “, “Grupo 1” = 6, “Grupo 2” = 6))


    Esto agregará la clase `table-class` a la tabla. Luego, agrega CSS personalizado a tu documento R Markdown creando un nuevo fragmento con el siguiente contenido: ```{css} .table-class { width: 100%; overflow-x: auto; }

    Esto establecerá el ancho de la tabla al 100% de su elemento contenedor y agregará una barra de desplazamiento horizontal en la parte inferior de la tabla si es necesario.

    Puedes ajustar el ancho de la tabla cambiando el valor de la propiedad width en el código CSS.

Comments are closed.