【问题标题】:How to fill zero in vector at alternate position in R [duplicate]如何在R中的备用位置填充向量中的零[重复]
【发布时间】:2013-02-11 05:13:32
【问题描述】:

我是 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 循环来填充零,但我无法做到。

【问题讨论】:

标签: r


【解决方案1】:

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

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

会做的。

【讨论】:

  • @thelatemail.. 非常感谢它的工作正常。我非常喜欢这种方法,尽管泰勒的回答也很准确,但这是一种非常精确的方法,这两个答案对我来说都是好的和有用的:)
【解决方案2】:

几种方法

创建一个零向量,然后替换正确的索引

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

或使用Mapc

 unlist(Map(c,0,x))

【讨论】:

  • 比我的回复 +1 少了个字符
  • 我不这么认为。我的18,你的16
  • 是的,回到顶部,但现在我的 cmets 浪费了额外的击键:(
  • @谢谢mnel,你的回答对我很有帮助:)
【解决方案3】:

只是为了好玩:

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

【讨论】:

  • @Tyler.. 非常感谢它的工作正常 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多