R:将元素插入向量(变体)

R:将元素插入向量(变体),r,R,我有向量: x = 1,2,3,4,5,6,7 我想说: x = 1,2,3,0,0,0,4,5,6,0,0,7 将元素0插入x的适当位置ind。我碰巧知道 ind = 4,5,6,10,11 在问题中,ind被指定为新版本的x中每个插入0的位置。这是一个玩具问题。实际上,x和ind是1000秒长的元素,内存非常紧张。 我看到一些线程似乎相关,但它们不能解决问题。给定ind,他们将创建 x = 1 2 3 4 0 5 0 6 0 7 0 0 这是错误的(它误解了插入点) 一个选项

我有向量:

x = 1,2,3,4,5,6,7
我想说:

x = 1,2,3,0,0,0,4,5,6,0,0,7
将元素0插入
x
的适当位置
ind
。我碰巧知道

ind = 4,5,6,10,11
在问题中,
ind
被指定为新版本的
x
中每个插入0的位置。这是一个玩具问题。实际上,
x
ind
是1000秒长的元素,内存非常紧张。 我看到一些线程似乎相关,但它们不能解决问题。给定
ind
,他们将创建

 x = 1 2 3 4 0 5 0 6 0 7 0 0
这是错误的(它误解了插入点)

    • 一个选项是

      v1 <- numeric(length(x)+length(ind))
      v1[setdiff(seq_along(v1), ind)]  <- x
      v1
      #[1] 1 2 3 0 0 0 4 5 6 0 0 7
      
      v1一个选项是

      v1 <- numeric(length(x)+length(ind))
      v1[setdiff(seq_along(v1), ind)]  <- x
      v1
      #[1] 1 2 3 0 0 0 4 5 6 0 0 7
      

      v1感谢您的支持。最好有一个就地解决方案,即只使用x而不是创建一个新变量。原因是内存非常紧张。x是hugeThanks Akrun。最好有一个就地解决方案,即只使用x而不是创建一个新变量。原因是内存非常紧张。x是巨大的