1

这是可重现的代码:

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

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

[1]  0 29 79 41 88 94  5 53 89 55 46  0 96 45  0 68 57 10 90 25

d在将 s附加到索引等于 的每个元素之后,0等于b - 1

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

我该怎么办?

请记住,我无法更改 的长度,d因为它被认为是一个相当长的函数的输出,而不是像本例中那样的简单随机序列。

4

1 回答 1

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
于 2012-11-01T19:12:36.480 回答