1

我在 R 中有 2 个不同的向量。第一个中的条目只有 0 或 1。第二个向量的长度等于第一个向量中 1 的数量。我想要一个输出,它是第一个向量,但 1 被第三个向量的条目替换。例如

v1<-c(1,0,0,1,1)
v2<-c(2,3,4)

我想:

v3<-c(2,0,0,3,4)

在我的脚本中,v1 的长度为 10,我有超过 1000 个要计算,因此无法手动进行。任何想法都会很棒,谢谢!

强尼

4

1 回答 1

1

就像建议的那样,你可以这样做:

v1[as.logical(v1)] <- v2

但它有覆盖的缺点v1。如果你不想这样,你可以这样做:

v3 <- replace(v1, as.logical(v1), v2)

或者这个,有点模糊:

v3 <- `[<-`(v1, as.logical(v1), v2)
于 2013-07-14T15:17:27.053 回答