You need to enable JavaScript to run this app. R语言中如何仅提取同时存在于另一向量中的向量元素
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何仅提取同时存在于另一向量中的向量元素

R语言提取两个向量共有元素的实现方法

针对x、y均为向量类型、需提取x中同时存在于y的元素的需求,可根据是否需要去重的场景选择对应实现:

  • 场景1:需要自动去重,匹配集合交集的标准运算
    直接使用R基础包内置的intersect()函数,函数原生设计目标就是计算两个输入向量的交集,元素顺序以第一个传入的向量排序为准。
    复现示例的完整代码:
    # 构造示例输入向量
    x <- c("a", "b", "c", "d", "e")
    y <- c("a", "z", "m", "d", "e", "g")
    
    # 计算交集得到目标结果
    r <- intersect(x, y)
    
    运行后输出的结果为c("a", "d", "e"),和预期完全一致。
    注意:示例中的a、b等字符元素需要加英文引号包裹,否则R会将其识别为未定义的变量名,导致运行报错。
  • 场景2:需要保留x向量中的原有重复元素,仅过滤掉不存在于y的内容
    可以用%in%运算符构造布尔索引筛选x中的元素,实现代码:
    r <- x[x %in% y]
    
    这类写法和intersect()的核心区别是:如果x中存在重复的共有元素,该写法会完整保留x里的重复值,而intersect()会自动对结果去重,使用时可根据自身数据的去重需求选择对应方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.31 14:06:05