Créer compter de la table sous condition spécifique

0

La question

J'ai un ensemble de variables binaires (avec les valeurs de 0 et de 1) et je veux créer un à deux voies compter tableau qui résume les comtes de cooccurrence de paires de variables (c'est à dire, ils ont tous deux la valeur de 1). Voici un exemple d'ensemble de données:

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 fin de compte, je voudrais avoir la table qui compte la cooccurrence de l'Horreur(=1) et d'égalité(=1), le Thriller(=1) et d'égalité(=1), la Comédie(=1) et d'égalité(=1), Romantique(=1) et d'égalité(=1), et la sci.fi(=1) et d'égalité(=1).

1

La meilleure réponse

3

Quelque chose comme cela?

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

Je vous remercie. C'est exactement ce que je cherchais. Je voudrais ajouter t() à la fin de le rendre verticale
cliu

Une question de suivi. Savez-vous aussi ajouter une autre colonne qui compte, toutes les autres variables avec la valeur 1 et le sexe = 0? De préférence dans le même bloc de dplyr code
cliu

Dans d'autres langues

Cette page est dans d'autres langues

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