7
votes

R identifier une ligne avant un changement de signe

J'ai un vecteur: xxx

Comment puis-je identifier la position avant un changement de signe? Ie df [2]

r

0 commentaires

3 Réponses :


14
votes

Ceci est assez simple, si vous connaissez la fonction signe ... xxx


3 commentaires

... et si vous connaissez la fonction diff :)


Merci. C'est très utile.


Soyez prudent, cette réponse considère C (0,1) pour avoir un changement de signe. Cela peut ou non être désiré en fonction de l'application!



1
votes

Je préfère la réponse de Joshua, mais voici une alternative, plus compliquée une juste pour le plaisir: xxx


1 commentaires

De même à la réponse ci-dessus par @joshuauauaulrich, cette réponse considère C (0,1) pour avoir un changement de signe. Cela peut ou non être désiré en fonction de l'application!



-1
votes

Si vous voulez être une personne terrible, vous pouvez toujours utiliser une boucle pour la boucle:

signchange <- function(x) {
    index = 0
    for(i in 1:length(x))
    {
        if(x[i] < 0)
        {
            return (index)
        }
        else
        {
            index = index + 1
        }
    }
    return (index)
}


1 commentaires

Je n'étais pas le Downvote, mais si vous allez être une personne terrible et que vous utilisez une boucle, vous devez au moins vérifier si le premier élément est positif ou négatif. La fonction tel que détecte la première valeur négative - et non le premier changement de signe.