Creare tabella di conteggio sotto la specifica condizione

0

Domanda

Ho una serie di variabili binarie (con i valori di 0 e 1) e voglio creare un due vie conte tabella che riassume i conti di cooccurrence di coppie di variabili (cioè, tutti e due hanno il valore di 1). Qui è un esempio di dataset:

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")

In fine, vorrei avere la tabella che conta il cooccurrence di Orrore(=1) e di genere(=1), Thriller(=1) e di genere(=1), la Commedia(=1) e di genere(=1), Romantico(=1) e di genere(=1), e sci.fi (a=1) e di genere(=1).

1

Migliore risposta

3

Qualcosa di simile a questo?

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

Grazie. Questo è esattamente quello che stavo cercando. Vorrei aggiungere t() al fine di rendere verticale
cliu

Un follow-up domande. Sai anche aggiungere un'altra colonna che conta tutte le altre variabili con valore 1 e genere = 0? Preferibilmente nello stesso pezzo di dplyr codice
cliu

In altre lingue

Questa pagina è in altre lingue

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