Conditions et comparaisons
Une condition est une expression logique dont le résultat est soit TRUE
(vrai) soit FALSE
(faux).
Une condition comprend la plupart du temps un opérateur de comparaison. Les plus courants sont les suivants :
Opérateur de comparaison | Signification |
---|---|
== |
égal à |
!= |
différent de |
> |
strictement supérieur à |
< |
strictement inférieur à |
>= |
supérieur ou égal à |
<= |
inférieur ou égal à |
Voyons tout de suite un exemple :
logi [1:2000] FALSE FALSE TRUE TRUE FALSE FALSE ...
Que s’est-il passé ? Nous avons fourni à R une condition qui signifie « la valeur de la variable sexe vaut “Homme” ». Et il nous a renvoyé un vecteur avec autant d’éléments qu’il y’a d’observations dans d
, et dont la valeur est TRUE
si l’observation correspond à un homme et FALSE
dans les autres cas.
Prenons un autre exemple. On n’affichera cette fois que les premiers éléments de notre variable d’intérêt à l’aide de la fonction head
:
[1] 28 23 59 34 71 35
[1] FALSE FALSE TRUE FALSE TRUE FALSE
On voit bien ici qu’à chaque élément du vecteur d$age
dont la valeur est supérieure à 40 correspond un élément TRUE
dans le résultat de la condition.
On peut combiner ou modifier des conditions à l’aide des opérateurs logiques habituels :
Opérateur logique | Signification |
---|---|
& |
et logique |
| |
ou logique |
! |
négation logique |
Comment les utilise-t-on ? Voyons tout de suite des exemples. Supposons que je veuille déterminer quels sont dans mon échantillon les hommes ouvriers spécialisés :
Si je souhaite identifier les personnes qui bricolent ou qui font la cuisine :
Si je souhaite isoler les femmes qui ont entre 20 et 34 ans :
Si je souhaite récupérer les enquêtés qui ne sont pas cadres, on peut utiliser l’une des deux formes suivantes :
Lorsqu’on mélange « et » et « ou » il est nécessaire d’utiliser des parenthèses pour différencier les blocs. La condition suivante identifie les femmes qui sont soit cadre, soit employée :
L’opérateur %in%
peut être très utile : il teste si une valeur fait partie des éléments d’un vecteur. Ainsi on pourrait remplacer la condition précédente par :
Enfin, signalons qu’on peut utiliser les fonctions table
ou summary
pour avoir une idée du résultat de notre condition :
Homme Femme
899 1101
FALSE TRUE
1101 899
Mode FALSE TRUE
logical 1101 899