私は正と負の数のベクトルを持っています
vec<-c(seq(-100,-1), rep(0,20), seq(1,100))
ベクトルは例よりも大きく、ランダムな値のセットを取ります。ベクトル内の負の数を繰り返し見つける必要があります...これは非常に非効率的です。
負の数だけを見つける必要があり、ベクトルは並べ替えられているため、最初の 0 または正の数のインデックスのみを知る必要があります (実際のランダム ベクトルには 0 がない場合があります)。
現在、このコードを使用して長さを見つけています
length(which(vec<0))
しかし、これは R がベクトル全体を通過することを強制しますが、それはソートされているので、その必要はありません。
私は使用できます
match(0, vec)
しかし、私のベクトルには常に0があるとは限りません
だから私の質問は、match()
特定の値を見つける代わりに条件を適用する関数はありますか? which()
または、コードを実行するためのより効率的な方法はありますか?