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

R语言如何检测vector向量中是否存在指定连续双元素组合

R语言检测向量中是否存在指定连续元素对的实现方法

核心思路:提取向量中所有相邻的两个元素组成配对,和目标配对比对是否存在完全匹配的项即可。

测试用示例向量:

vec = c(4,4,3,1,2,2)

方法1:矩阵配对比对法(兼容性最强,无特殊边界问题)

直接生成所有连续相邻对的矩阵,逐行比对是否匹配目标,通用实现函数如下:

check_consecutive_pair <- function(vec, target_pair) {
  # 处理向量长度不足2的边界情况
  if (length(vec) < 2) return(FALSE)
  # 生成所有连续相邻对,每一行对应一个配对
  consecutive_pairs <- cbind(vec[-length(vec)], vec[-1])
  # 逐行判断是否和目标配对完全相等,只要有一个匹配就返回TRUE
  any(apply(consecutive_pairs, 1, function(row) all(row == target_pair)))
}

测试效果:

# 测试配对(3,1)
check_consecutive_pair(vec, c(3,1))
# 输出:TRUE

# 测试配对(4,2)
check_consecutive_pair(vec, c(4,2))
# 输出:FALSE

方法2:字符串匹配法(写法更简洁)

把整个向量按统一分隔符拼接为字符串,再匹配目标配对的拼接字符串即可,注意分隔符要选择向量元素中不会出现的字符:

# 用逗号作为分隔符拼接向量
vec_str <- paste(vec, collapse = ",")

# 检测(3,1)是否存在
grepl("3,1", vec_str)
# 输出:TRUE

# 检测(4,2)是否存在
grepl("4,2", vec_str)
# 输出:FALSE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 17:06:03