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

介绍

有时候需要在多个组间筛选它们的交集特征,本文利用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)
相关推荐
2501_9413331022 分钟前
基于YOLO11-CA-HSFPN的人体姿态识别与姿势分类改进方法详解
人工智能·分类·数据挖掘
Biomamba生信基地28 分钟前
用R语言画生信基地圣诞树~
开发语言·r语言·单细胞·空间转录组·biomamba生信基地
七夜zippoe29 分钟前
AutoGen数据分析智能体实战:让Excel自动说话
人工智能·数据分析·excel·智能体·autogen
刘永鑫Adam1 小时前
Nature Methods | 诸奇赟组-Scikit-bio:用于生物组学数据分析的基础Python库
人工智能·python·算法·机器学习·数据分析
Loacnasfhia91 小时前
珊瑚形态识别与分类:基于YOLOv8-EfficientHead的14种珊瑚生长形态自动检测系统
yolo·分类·数据挖掘
diegoXie1 小时前
【R】新手向:renv 攻克笔记
开发语言·笔记·r语言
cver12315 小时前
足球视频检测数据集介绍-160张图片-智能体育转播 运动数据分析 自动化视频剪辑 裁判辅助系统 青训技术分析 虚拟现实体验
数据分析·自动化·音视频
Tiger Z16 小时前
R 语言科研绘图 --- 其他绘图-汇总4
r语言·论文·科研·研究生·配色
2301_7921858817 小时前
基于软件工程的结构化分析实验
人工智能·数据挖掘·软件工程
一瞬祈望18 小时前
ResNet50 图像分类完整实战(Notebook Demo + 训练代码)
人工智能·python·神经网络·数据挖掘