gpt4 book ai didi

r - 将 2 个向量合并为 1 个满足特定条件的向量

转载 作者:行者123 更新时间:2023-12-04 13:05:33 25 4
gpt4 key购买 nike

我有两个向量可以写成如下:

aa <- c(0, 0, 0, 0, 1, 0, 0, 0)
bb <- c(0, 2, 0, 0, 3, 1, 1, 1)

我想合并这些向量,当向量 aa 干扰值 1 时,向量 bb 的其余部分取值零。在此示例中,结果应如下所示:

cc <- c(0, 2, 0, 0, 3, 0, 0, 0) 

在 R 中执行此操作最快、最有效的方法是什么?

最佳答案

我们可以

library(dplyr)
ifelse(lag(cummax(aa), default = 0) == 0, bb, aa)
[1] 0 2 0 0 3 0 0 0

或者另一种方式是

bb * !c(0, head(cummax(aa), -1))
[1] 0 2 0 0 3 0 0 0

或者另一种选择

ind <- (which.max(aa) + 1):length(aa)
bb[ind] <- aa[ind]
> bb
[1] 0 2 0 0 3 0 0 0

关于r - 将 2 个向量合并为 1 个满足特定条件的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69634914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com