我有一个向量:
df <- c(5,9,-8,-7,-1)
如何在符号更改之前识别位置?IEdf[2]
这很简单,如果你知道这个sign
功能......
which(diff(sign(df))!=0)
# [1] 2
我更喜欢 Joshua 的回答,但这里有一个更复杂的替代方案,只是为了好玩:
head(cumsum(rle(sign(df))$lengths),-1)
如果你想成为一个可怕的人,你总是可以使用 for 循环:
signchange <- function(x) {
index = 0
for(i in 1:length(x))
{
if(x[i] < 0)
{
return (index)
}
else
{
index = index + 1
}
}
return (index)
}