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

R语言如何将两个等长向量合并为长度一致的结果向量

R语言实现等长0-1向量按位合并的方法

现有两个长度一致的R语言数值向量,元素均为0/1编码:

vec1<-c(0, 0, 1, 1, 0, 0, 0, 0, 0, 0)
vec2<-c(0, 0, 0, 1, 0, 0, 1, 0, 1, 0)

需要合并得到长度与原向量一致的结果,合并规则为:对应位置只要任意一个原向量取值为1,结果位置就为1;两个原向量均为0时结果为0,预期结果如下:

vec<-c(0, 0, 1, 1, 0, 0, 1, 0, 1, 0)

可通过以下几种方法实现:

  • 方法1:逻辑或运算符(推荐,简洁高效)
    R中|是向量化的逻辑或运算符,会对两个向量对应位置做逻辑判断,有真值则返回TRUE,否则返回FALSE,配合as.integer()将逻辑值转回0/1数值即可:
    vec <- as.integer(vec1 | vec2)
    
  • 方法2:平行取最大值函数pmax()
    由于0和1的最大值刚好符合“有1出1、全0出0”的合并规则,直接调用pmax()取两个向量对应位置的最大值即可,无需额外做类型转换:
    vec <- pmax(vec1, vec2)
    
    该方法通用性更强,若后续向量取值不局限于0/1,只要需要取对应位置的最大值都可以使用。
  • 方法3:算术运算判断
    先将两个向量对应位置的数值相加,再判断结果是否大于等于1,将判断结果转为0/1数值也能实现需求:
    vec <- as.integer(vec1 + vec2 >= 1)
    
    该方法逻辑直白,但写法相对冗余,不做优先推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 05:39:13