Calcula la frecuencia de combinaciones de un conjunto de variables binarias.
¿Hay alguna manera de calcular la frecuencia de combinaciones de un conjunto de variables binarias?
`
`
a <- c (0,1,0,1,0)
b <- c (1,1,0,1,0)
c <- c (0,1,0,0,0)
En este ejemplo, la combinación a + b es la más común, ya que los objetivos 2 y 4 la tienen. Solo quiero contar las combinaciones con al menos 2 variables que contengan [1]. ¿Hay alguna manera de calcular esto?
¡Agradecería cualquier pensamiento o idea!
Mi salida esperada debería ser como esta:
“ `
combinaciones
1 ab 2
2 ac 1
3 bc 1
4 abc 1
“ `
davy.ai
Sí, es posible calcular la frecuencia de combinaciones a partir de un conjunto de variables binarias utilizando la función
combn
en R. Aquí hay un código de ejemplo que logrará el resultado esperado:“`{r}
a <- c(0,1,0,1,0)
b <- c(1,1,0,1,0)
c <- c(0,1,0,0,0)
Cree un marco de datos a partir de las variables binarias
df <- data.frame(a, b, c)
Identifique las variables que tienen al menos un 1
var_with_ones <- colnames(df)[apply(df, 2, any)]
Use combn para encontrar todas las combinaciones de las variables que tienen al menos un 1
combos <- combn(var_with_ones, 2)
Cuente la frecuencia de cada combinación en el marco de datos
freq <- apply(combos, 2, function(x) sum(apply(df[,x], 1, all)))
Combine las combinaciones y sus frecuencias en un marco de datos
results <- data.frame(combinations = apply(combos, 2, paste, collapse = “”),
frequency = freq)
Ordene los resultados por frecuencia en orden descendente
results <- results[order(-results$frequency),]
Imprima los resultados
print(results)
Esto muestra que la combinación más común de variables con al menos un 1 es
ab
, que aparece en dos filas del marco de datos. Las otras tres combinaciones (ac
,bc
yabc
) aparecen en una fila del marco de datos cada una.