Suma de filas según el valor de la columna en el marco de datos R

En este artículo, analizaremos cómo podemos resumir los valores de las filas según el valor de la columna en un marco de datos en el lenguaje de programación R. Supongamos que tiene un marco de datos como este:

 

frutas

tienda_1

tienda_2

1.

Manzana

1

13

2.

Mango

9

5

3.

Fresa

2

14

4.

Manzana

10

6

5.

Manzana

3

15

6.

Fresa

11

7

7.

Mango

4

dieciséis

8.

Fresa

12

8

Este conjunto de datos consta del nombre de frutas y shop_1, shop_2 como nombre de columna. Aquí shop_1 y shop_2 muestran el número de frutas disponibles en las tiendas. Ahora desea encontrar la suma total de todas las filas en shope_1 que tienen el mismo valor de fruta. Así que nuestro conjunto de datos se ve así:

 

frutas

tienda_1

tienda_2

1.

Manzana

14

34

2.

Mango

13

21

3.

Fresa

25

29

Método 1: Usando la función agregada

La función agregada crea un subconjunto de los datos originales y calcula la función estadística para cada subconjunto y devuelve el resultado.

Sintaxis:

agregado(.~fruta,datos=df,FUN=suma)

Ejemplo:

R

# Sum of rows based on column values
  
# Creating dataset 
# creating fuits column
x <- c("Apple","Mango","Strawberry",
       "Apple","Apple","Strawberry",
       "Mango","Strawberry")
  
# creating shop_1 column
y <- c(1,9,2,10,3,11,4,12)
  
# creating shop_2 column
z <- c(13,5,14,6,15,7,16,8)
  
# creating dataframe
df <- data.frame(fruits=x,shop_1=y,shop_2=z)
  
# applying aggregate function
aggregate(.~fruits,data=df,FUN=sum)

Producción:

Usando la función agregada

Método 2: Usar la función ddply y numcolwise

ddply  simplemente divide el marco de datos dado y realiza cualquier operación en él (probablemente aplica una función) y devuelve el marco de datos.

colwise es una función del famoso paquete plyr . La función colwise se usa para calcular una función en cada columna en el marco de datos, calcula la columna sabia.

Ejemplo:

R

# Sum of rows based on column values
  
# loading library
library(plyr)
  
# Creating dataset 
# creating fuits column
x <- c("toy1","toy2","toy3",
       "toy1","toy1","toy3",
       "toy2","toy3")
  
# creating stock_1 column
y <- c(1,2,3,4,5,6,4,8)
  
# creating stock_2 column
z <- c(9,1,10,5,2,6,4,8)
  
# creating dataframe
df <- data.frame(toys=x,stock_1=y,stock_2=z)
  
# using sum function colwise
ddply(df,"toys",numcolwise(sum))

Producción: 

Usando ddply

Publicación traducida automáticamente

Artículo escrito por arpit122000 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 *