R将矢量插入矢量

时间:2018-03-23 06:40:15

标签: r vector

我有向量v1 = c(a, b, c, d, e, f),另一方面有向量v2 = c(1,2,3,4)

我的要求:

我想在位置1之后将向量v2插入到向量v1中,v2的每个值都覆盖v1的值,最后得到向量v3 = c(a,1,2,3,4,f)

我该如何管理它?提前谢谢。

1 个答案:

答案 0 :(得分:4)

我们可以根据职位进行分配

v1[2:(length(v1)-1)] <- v2
v1
#[1] "a" "1" "2" "3" "4" "f"

或者通过创建函数

,可以基于长度'v2'进行赋值
fnInsert <- function(vec1, vec2, ind){

   stopifnot(length(vec1) > length(vec2))
   i1 <- seq(ind, length.out = length(vec2), by = 1)
   replace(vec1, i1, vec2)
}

fnInsert(v1, v2, 2)
#[1] "a" "1" "2" "3" "4" "f"

fnInsert(v1, v2, 3)
#[1] "a" "b" "1" "2" "3" "4"

对于v2的长度大于v1的边缘情况进行一些额外的检查可能会更好

fnInsert(v1, 1:8, 2)
  

错误:长度(vec1)&gt;长度(vec2)不为TRUE

数据

v1 <- letters[1:6]
v2 <- c(1,2,3,4)