积极条目的总和,直到R中出现负数

时间:2017-12-04 17:38:42

标签: r

作为一个例子,我有一个20个混合正负整数的向量。 我想生成一个新的向量,其中每个正整数加在一起,直到出现负整数,然后添加每个负数,直到再次出现正数。

e.g。 2 4 3 -4 -4 -3 -2 3 4 5 2 5 -4 -4 -3 -3 3 4 5将成为9 -13 19 -14 12

我应该使用哪种代码?这甚至可能吗?

2 个答案:

答案 0 :(得分:6)

Button test = findViewById(R.id.btn_test);
    test.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(UserActivity.this, "An error occurred.", Toast.LENGTH_LONG).show();
}
});

答案 1 :(得分:2)

您还可以将tapplydiffabssigncumsum构建的分组结合使用。

使用d.b的数据,结果是

unname(tapply(x, cumsum(c(0, abs(diff(sign(x))))), sum))
 [1]  24 -17   6 -35  29 -10   4 -17  14 -19  15  -9

符号返回-1,1和0,具体取决于其输入值。 diff将确定符号发生变化的位置,absdiff变为和指标,剥离负值,cumsum用于构建tapply的群组