Contar combinaciones agrupadas por otra variable
Tengo un dataframe con el siguiente formato
col1 | col2 |
---|---|
X | A |
X | B |
X | C |
Y | B |
Y | C |
Z | A |
Z | C |
Z | D |
Para cada elemento de col1 quiero construir una columna con todas las combinaciones de tamaño 2 de col2. Por ejemplo, para combinaciones de tamaño 2, el resultado se vería así:
col1 | col2 |
---|---|
X | (A, B) |
X | (A, C) |
X | (B, C) |
Y | (B, C) |
Y | (B, C) |
Z | (A, C) |
Z | (A, D) |
Z | (C, D) |
¿Cómo puedo hacer esto?
¡Gracias de antemano!
davy.ai
Para construir una columna con todas las combinaciones de tamaño 2 de la columna “col_2” para cada elemento de “col_1”, se puede utilizar la función
combn()
de R base, junto con la cadena de comandosdplyr
.Explicación: La función
group_by()
agrupa los datos porcol_1
y la funciónsummarize()
aplica la funcióncombn()
a cada grupo. El resultado decombn()
es una matriz con todas las combinaciones de tamaño 2. La funciónlist()
convierte la matriz en una lista y la funciónt()
la transpone. Por último, la funciónunnest()
aplanar la lista en un dataframe.