Vytvořit počítat tabulce pod určitou podmínkou

0

Otázka

Mám sadu binárních proměnných (s hodnotami 0 a 1) a chci vytvořit dvou-způsob, jak počítat tabulce, která shrnuje počty cooccurrence párů proměnných (tj., oba z nich mají hodnotu 1). Zde je příklad datového souboru:

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

Na konci bych chtěl mít tabulku, která počítá cooccurrence Hrůzy(=1) a pohlaví(=1), Thriller(=1) a pohlaví(=1), Komedie(=1) a pohlaví(=1), Romantické(=1) a pohlaví(=1), a sci.fi(=1) a pohlaví(=1).

1

Nejlepší odpověď

3

Něco jako tohle?

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

Děkuji. To je přesně to, co jsem hledal. Chtěl bych dodat, t() na konci, aby se to vertikální
cliu

Navazující otázka. Víte, jak se také přidat další sloupec, který počítá všechny ostatní proměnné s hodnotou 1 a gender = 0? Nejlépe ve stejném kus dplyr kód
cliu

V jiných jazycích

Tato stránka je v jiných jazycích

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