Documento 7 DT package - Analisis

7.1 Instalación

El paquete de R ‘DT’ proporciona una interfaz para las tablas de datos. Los objetos de datos R (matrices o dataframes) se pueden mostrar como tablas en páginas HTML, proporcionando filtrado, paginación, clasificación y muchas otras características en las tablas.

Podemos instalar la versión estable de CRAN, o la versión de desarrollo utilizando:

# install from CRAN
install.packages('DT')

# or the development version if necessary
remotes::install_github('rstudio/DT')

A continuación, mostramos un ejemplo sencillo haciendo uso del dataset iris:

library(DT)
datatable(iris)

7.2 Argumentos

A continuación, mostramos todos los argumentos posibles (por defecto) para la función datatable de nuestro paquete DT.

datatable(
data,
options = list(),
class = “display”,
callback = JS(“return table;”),
rownames,
colnames,
container,
caption = NULL,
filter = c(“none”, “bottom”, “top”),
escape = TRUE,
style = “default”,
width = NULL,
height = NULL,
elementId = NULL,
fillContainer = getOption(“DT.fillContainer”, NULL),
autoHideNavigation = getOption(“DT.autoHideNavigation”, NULL),
selection = c(“multiple”, “single”, “none”),
extensions = list(),
plugins = NULL,
editable = FALSE
)

Si un usuario ya está familiarizado con DataTables, puede usar el argumento de opciones para personalizar la tabla (viendo la página Opciones para más detalles).

Nos vamos a centrar en el resto de los argumentos de la función datatable(), que son los de personalización de la tabla para que tenga una interfaz más bonita y fácil de usar.

7.2.1 Argumento ‘Class’

El argumento de clase especifica las clases CSS de la tabla.

La visualización del valor predeterminado básicamente permite el trazado de líneas, el resaltado de las filas al pasar el mouse, los bordes de las filas y el resaltado de las columnas ordenadas.

Como ejemplo de esta sección, establecemos un borde de celda:

datatable(head(iris), class = 'cell-border stripe')

Valores posibles para class: ‘table-bordered’, ‘table-bordered table-condensed’…

7.2.2 Argumento ‘Style’

Actualmente, DT solo admite el estilo Bootstrap además del estilo predeterminado. Puede usar el argumento style = ‘bootstrap’ para habilitar el estilo Bootstrap y ajustar las clases de tabla en consecuencia utilizando los nombres de clase de tabla Bootstrap, como table-stripe y table-hover.

Podemos ver las opciones para la clase ‘display’:

DT:::DT2BSClass('display')
## [1] "table table-striped table-hover"
DT:::DT2BSClass(c('compact', 'cell-border'))
## [1] "table table-condensed table-bordered"

7.2.3 Edición de tabla

Puede habilitar la edición de tablas utilizando el argumento editable (?DT :: datatable para conocer sus posibles valores). Luego podremos hacer doble clic en una celda para editar su valor:

DT::datatable(head(iris), editable = 'cell')

En este segundo ejemplo, podemos ajustar los parámetros editables de una forma más precisa:

DT::datatable(head(iris), editable = list(
  target = 'row', disable = list(columns = c(1, 3, 4))
))

7.2.4 Nombre de columnas editables

De forma predeterminada, datatable () muestra los nombres de columna de los datos en la tabla, y puede usar un vector de caracteres personalizado para el encabezado de la tabla. Podemos proporcionar un nuevo vector de caracteres para reemplazar completamente los nombres de columna de los datos:

# colnames(iris) es un vector de longitud 5, lo reemplazamos:
datatable(head(iris), colnames = c('Here', 'Are', 'Some', 'New', 'Names'))

7.2.5 Título de la tabla.

Podemos agregar un título de tabla mediante el argumento de título:

datatable(
  head(iris),
  caption = 'Table 1: This is a simple caption for the table.'
)

7.2.6 Filtros de columna

DataTables no proporciona filtros de columna de forma predeterminada. Solo hay un filtro global (el cuadro de búsqueda en la esquina superior derecha).

Agregamos un argumento de filtro en datatable() para generar automáticamente filtros de columna. Por defecto, los filtros no se muestran ya que filter = ‘none’. Podemos habilitar estos filtros por filter = ‘top’ o ‘bottom’, dependiendo de si se desea colocar los filtros en la parte superior o inferior de la tabla.

iris2 = iris[c(1:10, 51:60, 101:110), ]
datatable(iris2, filter = 'top', options = list(
  pageLength = 5, autoWidth = TRUE
))