Recuento de creación de tabla bajo la condición específica

0

Pregunta

Tengo un conjunto de variables binarias (con los valores de 0 y 1) y quiero crear un camino de dos recuento tabla que resume la cuenta de la concurrencia de los pares de variables (es decir, dos de ellos tienen el valor de 1). Aquí es un ejemplo de conjunto de datos:

mm <- matrix(0, 5, 6)
m <- 2
n <- 2
df <- data.frame(apply(mm, c(1,2), function(x) sample(c(0,1),1)))
colnames(df) <- c("Horror", "Thriller", "Comedy", "Romantic", "Sci.fi", "gender")

En la final, me gustaría tener la tabla que cuenta la concurrencia de Horror(=1) y el género(=1), Thriller(=1) y el género(=1), la Comedia(=1) y el género(=1), Romántico(=1) y el género(=1), y la médula espinal.fi(=1) y el género(=1).

1

Mejor respuesta

3

Algo como esto?

library(dplyr)
df %>% 
  mutate(across(-gender, ~ifelse(.==1 & gender ==1, 1, 0), .names = "{col}_gender1" )) %>% 
  summarise(across(ends_with("gender1"), sum))
  Horror_gender1 Thriller_gender1 Comedy_gender1 Romantic_gender1 Sci.fi_gender1
1              1                3              2                1              0
2021-11-23 19:15:28

Gracias. Esto es exactamente lo que yo estaba buscando. Yo añadiría t() en el extremo vertical
cliu

Una pregunta de seguimiento. ¿Sabes cómo también agregar otra columna que cuenta con todas las demás variables con valor de 1 y de género = 0? Preferiblemente en el mismo pedazo de dplyr código
cliu

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................