You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取R语言多个向量中至少在两个向量出现的公共值

R实现提取至少在2个向量中出现的公共值

核心思路

统计每个唯一值所属的不同向量的数量,筛选出数量≥2的值即可,方法支持任意数量的输入向量,无需提前固定向量个数。

基础R实现(无需额外安装包)

首先是示例向量定义:

x <- c(1,3,5,7,9)
y <- c(3,6,8,9,4)
z <- c(2,3,4,5,7,9)

# 将所有待比对的向量存入列表,可随意增减向量数量
vec_list <- list(x, y, z)

核心处理代码:

# 统计每个值出现在多少个不同的向量中
value_freq <- table(unlist(lapply(vec_list, unique)))
# 筛选至少在2个向量中出现的值
res <- sort(as.numeric(names(value_freq[value_freq >= 2])))
print(res)

运行输出:

[1] 3 4 5 7 9

代码说明

  • 对每个向量先调用unique:避免同一个向量内的重复值被重复计数,保证统计的是出现的向量个数,不是值的总出现次数
  • 若输入向量为字符类型,将as.numeric替换为as.character即可
  • 若需要调整出现次数阈值,比如要求至少出现在3个向量中,只需将value_freq >= 2中的2修改为对应阈值即可

tidyverse风格实现(适用于已加载tidyverse环境的场景)

library(purrr)
library(dplyr)

res <- vec_list %>%
  map(unique) %>%
  flatten_int() %>%
  tibble(value = .) %>%
  count(value) %>%
  filter(n >= 2) %>%
  pull(value) %>%
  sort()

内容的提问来源于stack exchange,提问作者Forge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 17:06:04