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

R语言实现三个等长向量满足条件时同步移除对应位置元素

R语言同步筛选多个等长向量的实现方案

初始向量定义如下:

# 初始化三个等长向量
x <- c(3, 6, 12, 24, 23)
y <- c(34, 26, 33, 41, 54)
z <- c("A", "B", "C", "D", "E")

具体需求:

  • 移除x和/或y中数值小于10的元素
  • 同步移除z中与被删元素位置对应的取值
  • 最终输出需匹配如下结果:
> x
[1]  12 24 23
> z
[1] "C" "D" "E"
> y
[1] 33 41 54

实现代码

核心思路:三个向量初始长度一致、元素位置一一对应,因此先生成统一的保留位置逻辑索引,再用该索引同时筛选三个向量即可,不会出现位置错位问题。

# 定义保留规则:x和y对应位置的数值均≥10时,保留该位置
keep_pos <- x >= 10 & y >= 10

# 用同一索引同步更新三个向量
x <- x[keep_pos]
y <- y[keep_pos]
z <- z[keep_pos]

规则调整说明

如果后续筛选规则变更,直接修改keep_pos的判断逻辑即可:

  • 若要求「x或y任意一个小于10就删除对应位置」,将判断符&(逻辑且)替换为|(逻辑或)
  • 若只需要判断x的数值、不限制y的取值,直接写keep_pos <- x >=10即可
    运行代码后打印三个向量,就能得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 18:33:26