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

R语言:如何找出两向量中值>600且索引相同的匹配位置?

解决两向量同索引位置均大于600的索引提取问题

原代码的问题在于:which(Vec2>600)和which(Vec1>600)返回的是各自向量中满足条件的索引集合,这两个集合的长度大概率不同,直接用==比较会触发R的循环补齐机制,得到的结果完全不是我们需要的“同一索引位置同时满足两个条件”的判断。

正确的思路是先对每个索引位置做逐元素的逻辑判断,再提取符合条件的索引:

set.seed(75)
Vec1 <- sample(0:999, size = 100)
Vec2 <- sample(0:999, size = 100)

# 生成逐元素的逻辑向量:判断每个位置是否同时满足Vec1>600和Vec2>600
both_gt600 <- Vec1 > 600 & Vec2 > 600
# 提取满足条件的索引
matching_indices <- which(both_gt600)

print(matching_indices)

也可以把两步合并成一行简化代码:

matching_indices <- which(Vec1 > 600 & Vec2 > 600)

这样就能准确得到所有“两个向量同位置值均大于600”的索引了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:35:49