web-dev-qa-db-fra.com

Compter le nombre de valeurs vectorielles dans la plage avec R

Dans R, si vous testez une condition sur un vecteur au lieu d'un scalaire, elle renverra un vecteur contenant le résultat de la comparaison pour chaque valeur du vecteur. Par exemple...

> v <- c(1,2,3,4,5)
> v > 2
[1] FALSE FALSE  TRUE  TRUE  TRUE

De cette façon, je peux déterminer le nombre d'éléments dans un vecteur qui sont au-dessus ou en dessous d'un certain nombre, ainsi.

> sum(v > 2)
[1] 3
> sum(v < 2)
[1] 1

Quelqu'un sait-il comment je peux déterminer le nombre de valeurs dans une plage donnée? Par exemple, comment pourrais-je déterminer le nombre de valeurs supérieures à 2 mais inférieures à 5?

31
Daniel Standage

Essayer

> sum(v > 2 & v < 5)
41
stevendesu

Il y a aussi les opérateurs de comparaison% <% et% <=% dans le package TeachingDemos qui vous permettent de faire ceci comme:

sum( 2 %<% x %<% 5 )
sum( 2 %<=% x %<=% 5 )

ce qui donne les mêmes résultats que:

sum( 2 < x & x < 5 )
sum( 2 <= x & x <= 5 )

Ce qui est mieux est probablement plus une question de préférence personnelle.

4
Greg Snow

Utilisation qui:

 set.seed(1)
 x <- sample(10, 50, replace = TRUE)
 length(which(x > 3 & x < 5))
 # [1]  6
2
aL3xa