7
votes

Vérifiez si une variable est dans l'ordre croissant dans R

supposant que j'ai une variable xxx

maintenant x est dans la commande croissante

Comment vérifier si une variable est dans l'ordre croissant R?


1 commentaires

Peut-être, annulerait is.unsorted travail ici?


3 Réponses :


9
votes

Essayez ceci:

all(diff(x) >= 0)


1 commentaires

+1 - Vous pouvez également faire tout (queue (x, -1)> tête (x, -1)) . C'est plus en tapant mais il est plus rapide car il évite de calculer la différence.



7
votes

Regardez les différences:

R> x <- c(1,3,5,7,8) 
R> allIncreasing <- function(x) all(diff(x)>0)
R> allIncreasing(x)
[1] TRUE
R> y <- x; y[3] <-0 
R> allIncreasing(y)
[1] FALSE
R> 


0 commentaires

13
votes

de ? est artificiel code>:

Test si un objet n'est pas trié (dans la commande croissante) ... p> blockQuote>

Donc, dans ce cas, vous pourriez: P>

is.sorted = Negate(is.unsorted)
is.sorted(x)
#[1] TRUE
#> is.sorted(1:5)
#[1] TRUE
#> is.sorted(5:1)
#[1] FALSE
#> is.sorted(sample(5))
#[1] FALSE
#> is.sorted(sort(runif(5)))
#[1] TRUE
#> is.sorted(c(1,2,2,3))
#[1] TRUE
#> is.sorted(c(1,2,2,3), strictly = T)
#[1] FALSE


0 commentaires