Crea conta masa de sub condiție specifică

0

Problema

Am un set de variabile binare (cu valorile 0 și 1) și vreau să creez un drum cu două conta tabel care rezumă capete de acuzare de cooccurrence de perechi de variabile (de exemplu, ambele au valoarea 1). Aici este un exemplu de set de date:

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

În final, aș dori să aibă masă care contează cooccurrence de Groază(=1) și de gen(=1), Thriller(=1) și de gen(=1), Comedie(=1) și de gen(=1), Romantic(=1) și de gen(=1), și sf.fi(=1) și de gen(=1).

1

Cel mai bun răspuns

3

Ceva de genul asta?

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

Multumesc. Acest lucru este exact ceea ce am fost în căutarea pentru. Aș adăuga t() la sfârșitul pentru a face verticale
cliu

O întrebare follow-up. Știi cum să adăugați, de asemenea, o altă coloană care contează toate celelalte variabile cu valoarea 1 și gen = 0? De preferință în aceeași bucată de dplyr cod
cliu

În alte limbi

Această pagină este în alte limbi

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