gpt4 book ai didi

r - 具有各种 IF 的矢量,加法和减法

转载 作者:行者123 更新时间:2023-12-01 09:43:57 25 4
gpt4 key购买 nike

我有一个向量

x <- c(5,2,-4,-6,-2,1,4,2,-3,-6,-1,8,9,5,-6,-11)

现在,如果向量 x 为负,则向量 y 需要累加,如果向量 x 为正,则相反,直到回到零:

y <- c(0,0,-4,-10,-12,-11,-7,-5,-8,-14,-15,-7,0,0,-6,-17)

以下是需要遵守的条件:

  • 负值和正值的累加和只要和小于0

  • 如果和为正数,则停止累积和,直到达到以下负值。

  • 当和变为正数时,打印值为0。

感谢您的帮助!

最佳答案

我认为这个计算对于矢量化来说并不简单,因为元素以一种非常重要的方式依赖于先前的元素,所以最好的方法可能只是使用循环:

x <- c(5,2,-4,-6,-2,1,4,2,-3,-6,-1,8,9,5,-6,-11)

y <- pmin(x,0) # gives us the first element correctly, and the correct vector length
for (i in seq_along(x[-1])) y[i+1] <- pmin(y[i] + x[i+1], 0)

y

# [1] 0 0 -4 -10 -12 -11 -7 -5 -8 -14 -15 -7 0 0 -6 -17

关于r - 具有各种 IF 的矢量,加法和减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53612000/

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