gpt4 book ai didi

R:仅当负值前面是正值时才对向量中的负值求和

转载 作者:行者123 更新时间:2023-12-04 09:47:23 24 4
gpt4 key购买 nike

我有一个看起来像这样的向量:

mass<-c(-2, -6, -79, 31, -28, 198, 132, 0, 262, -187, -475, 701, 926)

我需要对这个向量中的以下值子集求和:
  • 所有正值;
  • 负值,如果它们在向量中前面是正值。

  • 因此,在上面的示例向量中,我想从总和中排除 -2、-6 和 -79(它们不跟随正值),但包括 -28、-187 和 -475(因为它们位于向量由正值)。

    我可以总结。正值与
    sum(mass[mass>0])

    但我不确定如何只包含那些符合我的标准的负值。

    (我有大量的向量需要对其执行类似的操作,而且它们的负/正值序列并不相同,因此我也不能通过对向量进行子集化来排除前三个值,因为要排除的值的数量将因向量而异)。

    非常感谢您的帮助!

    最佳答案

    ones.you.want <- intersect(which(mass < 0), which(mass > 0)[1]:length(mass))
    sum(mass[ones.you.want])

    注意:如果向量中没有正值,这可能会失败。

    关于R:仅当负值前面是正值时才对向量中的负值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7959052/

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