ř识别之前在符号
这很简单,如果你了解sign
功能...
which(diff(sign(df))!=0)
# [1] 2
我喜欢约书亚的答案,但这里是一个另类,更复杂的一个只是为了好玩:
head(cumsum(rle(sign(df))$lengths),-1)
+1复杂的乐趣! – 2012-04-05 18:22:28
类似于@JoshuaUlrich的上面的答案,这个答案认为c(0,1)有一个符号变化。这可能会或可能不会取决于应用程序! – MHH 2015-06-30 06:41:00
如果你想成为一个可怕的人,你总是可以使用一个for循环:
signchange <- function(x) {
index = 0
for(i in 1:length(x))
{
if(x[i] < 0)
{
return (index)
}
else
{
index = index + 1
}
}
return (index)
}
我不是downvote,但如果你要成为一个可怕的人,并使用循环,你至少应该检查第一个元素是积极还是消极。功能是检测第一个负值 - 而不是第一个符号变化。 – Dason 2012-04-05 20:16:56
...如果您了解'diff'功能:) – Tommy 2012-04-05 18:16:25
谢谢。这非常有帮助。 – 2012-04-07 08:49:35
小心,这个答案认为c(0,1)有一个符号改变。这可能会或可能不会取决于应用程序! – MHH 2015-06-30 06:39:06