我有一个包含正值和负值的向量。例如类似的东西x = c(1,2,1,-2,-3,3,-4,5,1,1,-3)
现在我想标记向量的索引,其中值从正变为负或从负变为正。所以在上面的例子中,我想要一个看起来像这样的索引向量y=c(0,0,0,1,0,1,1,1,0,0,1)
我在 R
中这样做,所以如果可能的话,我想避免使用 for 循环。
最佳答案
我认为这应该有效:
+(c(0, diff(sign(x))) != 0)
#[1] 0 0 0 1 0 1 1 1 0 0 1
all.equal(+(c(0, diff(sign(x))) != 0), y)
#[1] TRUE
关于r - 在 R 中的向量中找到从正到负的切换的最快方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35022895/