Resumir varias columnas de data.table por grupo en R

En este artículo, discutiremos cómo resumir varias columnas de data.table por grupo en el lenguaje de programación R.

Creación de tabla para demostración:

R

# load data.table package
library("data.table")
  
# create data table with 3 columns
# items
# weight and #cost
data <- data.table( items= c("chocos","milk","drinks","drinks",
                             "milk","milk","chocos","milk",
                             "honey","honey"),    
                     
                   weight= c(10,20,34,23,12,45,23,
                             12,34,34),
                     
                   cost=  c(120,345,567,324,112,345,
                            678,100,45,67))
  
# display
data

Producción:

Podemos resumir las múltiples columnas de 4 maneras:

  • Al encontrar el promedio
  • Al encontrar la suma
  • Al encontrar el valor mínimo
  • Al encontrar el valor máximo

podemos hacer esto usando la función lapply()

Sintaxis: datatable[, lapply(.SD, resumen_función), por = columna]

dónde

  • datatable es la tabla de datos de entrada
  • lpply() se usa para contener dos parámetros
  • el primer parámetro es .SD es un objeto R estándar
  • el segundo parámetro es una función de resumen que toma funciones de resumen para resumir la tabla de datos
  • por es el nombre de la columna en la que se agrupan los datos en función de esta columna

Ejemplo 1: programa R para resumir la tabla de datos por suma y valor medio

R

# load data.table package
library("data.table")
  
# create data table with 3 columns
# items
# weight and #cost
data <- data.table( items= c("chocos","milk","drinks","drinks",
                             "milk","milk","chocos","milk",
                             "honey","honey"),    
                     
                   weight= c(10,20,34,23,12,45,23,
                             12,34,34),
                     
                   cost=  c(120,345,567,324,112,345,
                            678,100,45,67))
  
  
# group by sum with items column
print(data[, lapply(.SD, sum), by = items])
  
# group by average with items column
print(data[, lapply(.SD, mean), by = items])

Producción:

Ejemplo 2: programa R para resumir la tabla de datos por valor mínimo y máximo

R

# load data.table package
library("data.table")
  
# create data table with 3 columns
# items weight and #cost
data <- data.table( items= c("chocos","milk","drinks","drinks",
                             "milk","milk","chocos","milk",
                             "honey","honey"),    
                     
                   weight= c(10,20,34,23,12,45,23,
                             12,34,34),
                     
                   cost=  c(120,345,567,324,112,345,
                            678,100,45,67))
  
# group by minimum  with items column
print(data[, lapply(.SD, min), by = items])
  
# group by maximum with items column
print(data[, lapply(.SD, max), by = items])

Producción:

Publicación traducida automáticamente

Artículo escrito por gottumukkalabobby y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *