2013-02-11 70 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