Valid XHTML     Valid CSS2    

Introduction à la programmation R (exercices)

Séance 3 : Conditions logiques et tests

                     gilles.hunault "at" univ-angers.fr

 

Table des matières cliquable

  1. Comparaison de valeurs (1)

  2. Comparaison de valeurs (2)

  3. Filtrage vectoriel

  4. Vérification de valeurs dans un fichier Excel

  5. Remplacements dans un vecteur

  6. Utiliser AND ou imbriquer ?

  7. Fonctions à résultats logiques de R

 
Il est possible d'afficher toutes les solutions via ?solutions=1 et de toutes les masquer avec via ?solutions=0.

 

1. Comparaison de valeurs (1)

On dispose de deux variables nommées valA et valB. Sans utiliser les fonctions de R, écrire des instructions qui mettent dans la variable petit la plus petite variable (la variable de plus petit contenu) et dans grand la plus grande variable. Donner ensuite la "bonne" solution avec les fonctions de R.

Solution :  

 

2. Comparaison de valeurs (2)

On dispose de trois variables nommées valA, valB et valC. Sans utiliser les fonctions de R, écrire des instructions qui mettent dans la variable tpetit la plus petite variable, dans milieu la variable intermédiaire et dans tgrand la plus grande variable. Donner ensuite la "bonne" solution avec les fonctions de R.

Et si on avait plus de trois valeurs à trier ?

Remarque : on supposera les valeurs distinctes.

Solution :  

 

3. Filtrage vectoriel

Soit v le vecteur défini par  

 v  <- c( 1, 8, 2, -5, 15, 6, 9, -1, 4) 

Donner les expressions R qui fournissent :

  • le dernier élément de v ;

  • les trois derniers éléments de v ;

  • les éléments de v de rang pair.

Solution :  

 

4. Vérification de valeurs dans un fichier Excel

On veut lire le fichier Excel nommé elfNA.xls et savoir combien de cases sont non vides pour la colonne AGE. Comment réaliser cela avec R ?

Solution :  

 

5. Remplacements dans un vecteur

On voudrait convertir les cases non vides de la colonne AGE et remplacer par "jeune" tout AGE<20 et par "vieux" sinon. Quel code R faut-il écrire ?

Reprendre ensuite avec "jeune" pour AGE<20, "adulte" pour AGE entre 20 et 60 (bornes incluses) et "vieux" pour AGE>60.

On pourra simuler 50 nombres entiers entre 1 et 99 pour AGE à l'aide de l'expression :


     AGE <- round( runif(50,min = 1,max=99) )
     

Solution :  

 

6. Utiliser AND ou imbriquer ?

En logique mathématique, on apprend que a ET b est équivalent à b ET a . Est-ce que pour R les codes a & b et b & a sont équivalents ? Comment le prouver ou au contraire l'infirmer, sachant que a et b sont des expressions R ? Quelle est la différence entre & et && en R  ?

Solution :  

 

7. Fonctions à résultats logiques de R

Comment fait-on en R pour tester si un mot est présent dans une liste de mots ou dans un vecteur de mots avec la fonction grep() ? Et avec l'opérateur %in% ?

On veut savoir si au moins un des éléments du vecteur V numérique est positif. Trouver une solution basée sur V>0 et sum. Pourquoi la fonction any() est-elle plus adaptée ?

On veut être sûr que tous les éléments du vecteur V numérique sont positifs. Trouver une solution basée sur V>0, sum et length(V). Pourquoi la fonction all() est-elle plus adaptée ?

A quoi sert la fonction all.equal() ?

Solution :  

 

 

Code-source php de cette page. Retour à la page principale du cours.

 

 

retour gH    Retour à la page principale de   (gH)