根据符号(+/-)在R中拆分向量

时间:2014-01-14 16:43:10

标签: r

我想基于其符号拆分矢量。我的矢量看起来像:

v <- c(1, 2,-4,-8 ,-9, 4)

载体中有3组。阳性组(指数1和2),阴性组(指数3,4,5)和另一个阳性组(指数6)。我想获得每组的FIRST索引的矢量....

所以我想要的结果是含有标记1,3,6的载体

如果向量具有任意数量的任意大小的组,我希望这可以工作。

有任何帮助吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以使用sign选出标志,然后diff查看此更改的位置。

c(1,which(diff(sign(v))!=0)+1)
[1] 1 3 6

答案 1 :(得分:3)

@ James解决方案的替代方案是使用sequencerle

which(sequence(rle(sign(v))$lengths) == 1)
# [1] 1 3 6