【问题标题】:R - How to detect the sign change in a column and add the values of that sign?R - 如何检测列中的符号变化并添加该符号的值?
【发布时间】:2018-04-30 15:33:16
【问题描述】:

我有以下data set。我想逐渐添加负数,在负值结束后,我的代码将添加正数等等。比如在下面的数据集中

c(-0.027029167, -0.027029167,0.015770833, 0.023270833, -0.011429167, 
  -0.030729167, -0.028029167, 0.011670833)

代码应该对前两个负值求和,然后现在应该是正值,然后对它们进行求和,直到数据集结束。

所以我的最终结果应该是这样的:

-0.054058334
0.039041666

等等。

感谢您的帮助!!

【问题讨论】:

  • 嗨,这个数据集有多长?可能有一些矢量化方法,但如果数据集非常小,那么简单循环也可能起作用。
  • 嘿,数据集大约600行

标签: r dataframe add


【解决方案1】:

也许这样的事情会做你想做的事。

x <- c(-0.027029167, -0.027029167,0.015770833, 0.023270833, -0.011429167, 
  -0.030729167, -0.028029167, 0.011670833)

r <- rle(x < 0)
tapply(x, rep(seq_along(r$values), r$lengths), sum)
#          1           2           3           4 
#-0.05405833  0.03904167 -0.07018750  0.01167083

【讨论】:

    猜你喜欢
    • 2011-04-20
    • 2011-02-08
    • 2020-12-09
    • 2022-10-03
    • 2020-10-06
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 2016-10-09
    相关资源
    最近更新 更多