这是可重现的代码:
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
的长度,因为它应该是一个很长的函数的输出,而不是像这个例子中的简单随机序列。
答案 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