Criar tabela de contagem sob condição específica

0

Pergunta

Eu tenho um conjunto de variáveis binárias (com os valores de 0 e 1) e eu gostaria de criar uma contagem de tabela que resume as contagens de ocorrência simul tânea de pares de variáveis (por exemplo, ambos têm o valor de 1). Aqui está um exemplo de conjunto de dados:

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

No final, eu gostaria de ter a tabela que conta a ocorrência simul tânea de Horror(=1) e de gênero(=1), Thriller(=1) e de gênero(=1), Comédia(=1) e de gênero(=1), Romântico(=1) e de gênero(=1), e a sci.fi(=1) e de gênero(=1).

1

Melhor resposta

3

Algo como isso?

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

Obrigado. Isso é exatamente o que eu estava procurando. Eu gostaria de acrescentar t() no final, para tornar vertical
cliu

Uma pergunta. Você não sabe como, também, adicionar outra coluna que conta todas as outras variáveis com valor 1 e sexo = 0? De preferência no mesmo bloco de dplyr código
cliu

Em outros idiomas

Esta página está em outros idiomas

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