7

私はベクトルを持っています:

df <- c(5,9,-8,-7,-1)

標識が変わる前の位置を特定するにはどうすればよいですか? すなわちdf[2]

4

3 に答える 3

14

関数について知っていれば、これは非常に簡単signです...

which(diff(sign(df))!=0)
# [1] 2
于 2012-04-05T18:14:25.820 に答える
1

私はジョシュアの答えを好みますが、楽しみのために、より複雑な代替案を次に示します。

head(cumsum(rle(sign(df))$lengths),-1)
于 2012-04-05T18:16:48.657 に答える
-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)
}
于 2012-04-05T18:20:23.787 に答える