繁体   English   中英

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

[英]Split a vector in R based on sign (+/-)

我想基于其符号拆分矢量。 我有一个看起来像这样的矢量:

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

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

所以我想要的结果是包含标记1,3,6的向量

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

有帮助吗?

谢谢!

您可以使用sign来挑选符号,然后使用diff来查看这些更改的位置。

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

@ James解决方案的另一种选择是使用sequencerle

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM