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:
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:
Publicación traducida automáticamente
Artículo escrito por arpit122000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA