附加多个数组项

时间:2012-11-01 19:02:21

标签: arrays r append

这是可重现的代码:

a <- rep(1, 20)
a[c(1, 12, 15)] <- 0
b <- which(a == 0)
set.seed(123)
d <- round(runif(17) * 100)

我想将0附加到d以获得以下结果:

[1]  0 29 79 41 88 94  5 53 89 55 46  0 96 45  0 68 57 10 90 25
d附加到索引等于0的每个元素后,

等于b - 1

我看到append()只接受一个“后”值,不超过一个。

我该怎么办?

请记住,我不能改变d的长度,因为它应该是一个很长的函数的输出,而不是像这个例子中的简单随机序列。

1 个答案:

答案 0 :(得分:4)

您可以使用否定下标将非零元素分配给新矢量。

D <- numeric(length(c(b,d)))
D[-b] <- d
D
# [1]  0 29 79 41 88 94  5 53 89 55 46  0 96 45  0 68 57 10 90 25