数据分析:筛选多组交集特征

介绍

有时候需要在多个组间筛选它们的交集特征,本文利用R语言实现该目的

加载R包

R 复制代码
library(UpSetR)
library(tidyverse)

Upset画图

R 复制代码
movies <- read.csv(system.file("extdata", "movies.csv", package = "UpSetR"), 
                   header = T, sep = ";")
movies_list <- list(
  Action = movies %>%
    dplyr::filter(Action == 1) %>%
    dplyr::pull(Name),
  Adventure = movies %>%
    dplyr::filter(Adventure == 1) %>%
    dplyr::pull(Name),
  Children = movies %>%
    dplyr::filter(Children == 1) %>%
    dplyr::pull(Name),
  Comedy = movies %>%
    dplyr::filter(Comedy == 1) %>%
    dplyr::pull(Name),
  Crime = movies %>%
    dplyr::filter(Crime == 1) %>%
    dplyr::pull(Name),
  Documentary = movies %>%
    dplyr::filter(Documentary == 1) %>%
    dplyr::pull(Name)  
)

movies_pl <- UpSetR::upset(
  data = fromList(movies_list),
  nsets = 3, 
  sets = c("Action", "Adventure", "Children", 
           "Comedy", "Crime", "Documentary"),
  order.by = "freq",
  main.bar.color = "gray10",
  sets.bar.color = "gray",
  matrix.color = "gray10",
  mainbar.y.label = "NO. of movies",
  sets.x.label = "NO. of movies")

movies_pl

判断交集特征

  • 去冗余变量 df_uniq_movie

  • 分组变量标签 df_group_movie

R 复制代码
df_uniq_movie <- data.frame(feature = unique(unlist(movies_list)))
df_group_movie <- lapply(movies_list, function(x){
  data.frame(feature = x)
}) %>% 
  dplyr::bind_rows(.id = "Sequence")
  • 给变量打上交集标签
R 复制代码
df_int_movie <- lapply(df_uniq_movie$feature, function(x){
  intersection <- df_group_movie %>% 
    dplyr::filter(feature == x) %>% 
    dplyr::arrange(Sequence) %>% 
    dplyr::pull(Sequence) %>% 
    paste0(collapse = "|")
  # build the dataframe
  return(data.frame(feature = x, int = intersection))
}) %>% 
  dplyr::bind_rows()

head(df_int_movie)
相关推荐
YangYang9YangYan3 小时前
2026大专大数据专业学习数据分析的价值与应用
大数据·学习·数据分析
liangdabiao4 小时前
开源基于claude code skills搭建互联网数据分析Agent全自动化
数据挖掘·数据分析·自动化
TGITCIC4 小时前
2026数据分析Agent最新落地方向解析
数据库·数据分析·ai大模型·ai智能体·ai数据·ai问数·ai sql
Aloudata7 小时前
企业落地 AI 数据分析,如何做好敏感数据安全防护?
人工智能·安全·数据挖掘·数据分析·chatbi·智能问数·dataagent
牛猫Data8 小时前
Power BI为什么不能完全取代Excel?
microsoft·数据分析·excel·database·数据可视化·powerbi
2501_944934738 小时前
大专学历从运营转市场调研的路径
数据分析
muddjsv8 小时前
数据驱动的进化之路:数据分析的发展脉络、核心范畴与实践指南
数据分析
liu****8 小时前
神经网络基础
人工智能·深度学习·神经网络·算法·数据挖掘·回归
张小凡vip9 小时前
数据挖掘(三) ----- JupyterHub与Jupyter Notebook的区别和安装JupyterHub
人工智能·jupyter·数据挖掘
十三画者9 小时前
【文献分享】LyMOI一种结合深度学习和大规模语言模型的用于解读组学数据的工作流程
人工智能·深度学习·语言模型·数据挖掘·数据分析