Mostrar varias filas agrupadas como resultado de búsqueda/filtro en R (Utilizando datatables u otras alternativas)
Una pregunta aparentemente fácil de formato para datatables, con R. Me gustaría devolver tablas/resultados en mi flexdashboard que estén formateados ligeramente de manera diferente al formato predeterminado.
No estoy seguro si datatables es la mejor manera de hacer esto, pero básicamente tengo algunos filtros de crosstalk en un flexdashboard que los usuarios pueden usar para filtrar un conjunto de resultados de texto de caracteres (básicamente una búsqueda de contenido que podría mostrarse como un resultado de búsqueda de Google).
Datos de muestra:
sample <- data.frame(Title = c("Title #1", "Title #2", "Title #3"),
Description = "Lorem ipsum dolor sit amet",
Date = c("2021-01-01", "2021-01-01", "2021-01-01"),
Link = c("www.google.com", "www.facebook.com", "www.twitter.com"))
datatable(sample, rownames = FALSE, colnames = c("","","",""), options = list(dom = 't', bSort=FALSE))
Resultado deseado:
Estoy trabajando con flexdashboard y crosstalk, por lo que cualquier solución alternativa a datatables debería tener eso en cuenta.
davy.ai
Para lograr el formato deseado para la tabla de datos en el flexdashboard, podemos utilizar la función
formatStyle
del paqueteDT
en combinación con la funcióndatatable
. Aquí tienes un ejemplo:“`{r}
library(DT)
sample <- data.frame(Título = c(“Título #1”, “Título #2”, “Título #3”),
Descripción = “Lorem ipsum dolor sit amet”,
Fecha = c(“2021-01-01”, “2021-01-01”, “2021-01-01”),
Enlace = c(“www.google.com”, “www.facebook.com”, “www.twitter.com”))
datatable(sample, rownames = FALSE, colnames = c(“”,””,””,””), options = list(dom = ‘t’, bSort = FALSE),
style = “bootstrap”, class = “table-striped”) %>%
formatStyle(columns = “Enlace”, valueColumns = “Enlace”,
font-weight
= “bold”, backgroundColor = “#f0f8ff”,target = “row”)
“`
En este ejemplo, primero cargamos el paquete
DT
y creamos el marco de datossample
. Luego utilizamos la funcióndatatable
para crear la tabla, conrownames = FALSE
ycolnames = c("","","","")
para eliminar los nombres de fila y columna respectivamente. También agregamosoptions = list(dom = 't', bSort = FALSE)
para personalizar la visualización de la tabla.A continuación, utilizamos el operador
%>%
para agregar formato a la tabla utilizando la funciónformatStyle
. El argumentocolumns
especifica qué columna se desea formatear, y el argumentovalueColumns
especifica qué columna se utilizará como valores para el formato. Establecemos el grosor de la fuente en “bold”, el color de fondo en “#f0f8ff” y el argumentotarget
en “row” para aplicar el formato a toda la fila en lugar de solo a la celda.Finalmente, establecemos
style = "bootstrap"
yclass = "table-striped"
para personalizar aún más la apariencia de la tabla según la plantilla de Bootstrap.Esto debería darte una tabla con el formato deseado como se muestra en la imagen.