在特定条件下创建计数 table
Create count table under specific condition
我有一组二进制变量(值为 0 和 1),我想创建一个双向计数 table 来总结变量对的共现计数(即,两者其中的值为 1)。这是一个示例数据集:
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")
最后,我想要计算恐怖(=1)和性别(=1)、惊悚(=1)和性别(=1)、喜剧的同时出现的table (=1) 和性别(=1),浪漫(=1) 和性别(=1),以及sci.fi(=1) 和性别(=1)。
是这样的吗?
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
我有一组二进制变量(值为 0 和 1),我想创建一个双向计数 table 来总结变量对的共现计数(即,两者其中的值为 1)。这是一个示例数据集:
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")
最后,我想要计算恐怖(=1)和性别(=1)、惊悚(=1)和性别(=1)、喜剧的同时出现的table (=1) 和性别(=1),浪漫(=1) 和性别(=1),以及sci.fi(=1) 和性别(=1)。
是这样的吗?
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