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.

R – suma agregada reactiva de recuento de subgrupos.

Estoy usando el paquete reactable en R para mostrar datos ordenados por múltiples grupos. ¿Existe alguna manera de mostrar la suma de todas las cuentas de todos los subgrupos dados?

Aquí tienes un ejemplo:

R
data("diamonds")
diamonds$id <- 1:nrow(diamonds)
reactable::reactable(data = diamonds[1:1000, c("cut", "color", "id")],
striped = TRUE,
highlight = TRUE,
bordered = TRUE,
showPageSizeOptions = TRUE,
groupBy = c("cut", "color"),
columns = list(
id = reactable::colDef(aggregate = "count")
))

Por lo tanto, la primera fila en la columna ID se refiere a los 7 subgrupos en el grupo ideal. En lugar de mostrar la cantidad de subgrupos existentes, quiero que reactable muestre la suma de todas las cuentas de subgrupos en la primera fila. Por lo tanto, sum(67, 7, 42, 57, 46, 73, 41)

¿Existe alguna manera de hacer esto?

Imagen de referencia: aquí

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de mostrar la suma de todos los recuentos de los subgrupos en la primera fila utilizando el paquete reactable en R. Puedes lograr esto utilizando el argumento aggregate en la función colDef y especificando la función sum como el agregador. Aquí tienes un ejemplo de código que demuestra esto:

    data("diamonds")
    diamonds$id <- 1:nrow(diamonds)
    
    reactable(
      data = diamonds[1:1000, c("cut", "color", "id")],
      striped = TRUE,
      highlight = TRUE,
      bordered = TRUE,
      showPageSizeOptions = TRUE,
      groupBy = c("cut", "color"),
      columns = list(
        id = colDef(
          aggregate = list(
            count = "count",
            total = ~sum(.)
          )
        )
      )
    )
    

    En el código anterior, agregamos otro elemento a la lista aggregate, que especifica la función de agregación sum para calcular el recuento total de todos los subgrupos. La notación ~ nos permite hacer referencia a todos los elementos dentro del nivel de agrupación. Esto resulta en una nueva columna llamada “Total” que muestra la suma de todos los recuentos de los subgrupos en la primera fila.

    Utilizamos la función list porque queríamos incluir múltiples agregadores para la misma columna. En este caso, incluimos tanto la función de agregación original count como la nueva función de agregación sum.

    La tabla resultante se verá algo así:

    ejemplo de reactable con recuento total

Comments are closed.