Contar valores únicos por grupo en R

En el artículo, vamos a discutir cómo contar la cantidad de valores únicos por grupo en el lenguaje de programación R. Entonces, tomemos el siguiente ejemplo,

Supongamos que tiene un conjunto de datos con varias columnas como esta:

 

clase

años

grupo de edad

1

A

20

JOVEN

2

B

15

NIÑO

3

C

45

ANTIGUO

4

B

14

NIÑO

5

A

21

JOVEN

6

A

22

JOVEN

7

C

47

ANTIGUO

8

A

19

JOVEN

9

B

dieciséis

NIÑO

10

C

50

ANTIGUO

11

A

23

JOVEN

En esta clase de conjunto de datos ficticio , age , age_group representan nombres de columna y nuestra tarea es contar la cantidad de valores únicos por age_group.

Entonces, el conjunto de datos resultante debería verse así:

 

grupo de edad

recuento_único

1

JOVEN

5

2

NIÑO

3

3

ANTIGUO

3

 

Método 1: Usando la función agregada

Usando la función agregada, podemos realizar operaciones en varias filas (agrupando los datos) y producir un solo valor de resumen.

Ejemplo:

R

# Count Unique values by group
  
# Creating dataset 
# creating class column
x <- c("A","B","C","B","A","A","C","A","B","C","A")
  
# creating age column
y <- c(20,15,45,14,21,22,47,18,16,50,23)
  
# creating age_group column
z <- c("YOUNG","KID","OLD","KID","YOUNG","YOUNG",
      "OLD","YOUNG","KID","OLD","YOUNG")
  
# creating dataframe
df <- data.frame(class=x,age=y,age_group=z)
df
  
# applying aggregate function
aggregate( age~age_group,df, function(x) length(unique(x)))

Producción:

Salida 1.

Método 2: usar el paquete dplyr y la función group_by

dplyr es el paquete R más utilizado. Se utiliza principalmente con fines de disputa de datos . Proporciona un conjunto de herramientas para la manipulación de datos.

Ejemplo:

R

# Count Unique values by group
  
# loading dplyr
library("dplyr")
  
# Creating dataset 
# creating class column
x <- c("A","B","C","B","A","A","C","A","B","C","A")
  
# creating age column
y <- c(20,15,45,14,21,22,47,18,16,50,23)
  
# creating age_group column
z <- c("YOUNG","KID","OLD","KID","YOUNG","YOUNG",
      "OLD","YOUNG","KID","OLD","YOUNG")
  
# creating dataframe
df <- data.frame(class=x,age=y,age_group=z)
  
# grouping age_group column 
# counting all the unique
# value based on the age_group 
# column 
df %>%
  group_by(age_group) %>%
  summarise(n_distinct(age))

Producción:

Salida 2.

Publicación traducida automáticamente

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