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

介绍

有时候需要在多个组间筛选它们的交集特征,本文利用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)
相关推荐
Q一件事6 小时前
R语言制图-相关性及关系网络图
开发语言·r语言
没有梦想的咸鱼185-1037-16636 小时前
北斗高精度数据解算:破解城市峡谷/长基线/无网区难题,从毫米级定位到自动化交付——(GAMIT/GLOBK底层核心解算技术方法)
运维·arcgis·数据分析·自动化
CC数分10 小时前
大模型时代的数据分析:AI会取代数据分析师吗?
人工智能·数据挖掘·数据分析
AI职业加油站12 小时前
数据要素时代:大数据治理工程师证书深度解码
大数据·开发语言·人工智能·python·数据分析
编程界一哥13 小时前
Visual C++ 2015运行库安装指南:解决msvcp140.dll缺失报错
数据挖掘
编程界一哥13 小时前
Visual C++ 2013 运行库安装教程:vcredist x64/x86 官方下载与避坑指南
数据挖掘
何中应13 小时前
Grafana列表如何设置固定排序
运维·数据分析·grafana
CDA数据分析师干货分享13 小时前
石油工程专业炼油厂一线岗位转行数据分析岗,CDA数据分析师二级学习经验
深度学习·学习·数据挖掘·数据分析·cda证书·cda数据分析师
YangYang9YangYan13 小时前
2026高职物流工程技术就业方向及数据分析应用
数据挖掘·数据分析
weixin_4469340314 小时前
多分类暴露变量的亚组分析森林图功能上线了,R语言搞不了风暴统计平台一键搞定
人工智能·机器学习·分类·数据挖掘·r语言