2013-02-11 76 views
2

我是R语言的新手。我遇到了一个情况,我需要在矢量中的零位置填充零点。例如:如何在R中替换位置填充向量零中的零

v<-c(1,2,3,4,5,6,7,8,9,10) 

我需要新的载体像

0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 

我用for循环,以填补零试过,但我不能这样做。

+0

几个答案[这里](http://r.789695.n4.nabble.com/Interleaving-elements-of-two-vectors-td795123.html) – A5C1D2H2I1M1N2O1R2T1 2013-02-11 05:28:33

回答

4

一对夫妇的接近

创建零向量,然后更换正确的指标

x1 <- rep(0, length(x)*2) 
x1[seq(2,20,by=2)] <- x 

或使用Mapc

unlist(Map(c,0,x)) 
+0

党少于我的回复字符+1 – 2013-02-11 05:37:46

+0

我不这么认为。我得到'18'为我的,'16'为你的 – mnel 2013-02-11 05:41:06

+0

耶回到顶端,但现在我浪费了额外的关键中风与我的评论:( – 2013-02-11 05:43:27

7

我相信有很多的解决方案,但是

as.vector(rbind(0,v)) 
[1] 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0 10 

会做到这一点。

+0

@thelatemail ..非常感谢它的正常工作。我非常喜欢这种方法,虽然泰勒的答案也非常精确,但两者的答案都很好,对我有用:) – Saurabh 2013-02-11 07:23:20

3

只是踢:

v <- c(1,2,3,4,5,6,7,8,9,10) 
c(mapply(c, 0, v)) 
+0

@泰勒..非常感谢它的工作:) – Saurabh 2013-02-11 07:22:13