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:
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:
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