在R语言中匹配向量:根据v1的值替换v2元素的方法
R语言向量匹配替换实现方案
向量定义
先定义题目中的三个向量:
v1 <- c(1,0,0,1,0) v2 <- c(3,5,7,8,6) v3 <- c(7,6,4,2,1)
实现方法
方法1:逻辑索引替换(直观易懂)
先复制v2到新向量,再针对v1为1的位置替换为v3对应值:
new_v2 <- v2 # 定位v1中值为1的位置,替换new_v2对应元素 new_v2[v1 == 1] <- v3[v1 == 1]
方法2:ifelse函数一行实现(简洁高效)
利用ifelse函数的条件判断特性,直接生成目标向量:
new_v2 <- ifelse(v1 == 1, v3, v2)
验证结果
运行上述任意一种方法后,打印new_v2即可得到预期结果:
new_v2 # 输出: # [1] 7 5 7 2 6
内容的提问来源于stack exchange,提问作者manu p
相关产品推荐
相关产品推荐

