Introduction à R (partie 2)

Ce TP est la suite du précédent. On reprend le jeu de données sommeil que l'on a rencontré lors du 1er TP.
Table des matières :

Sélection de données et d'attributs dans un data frame

On peut facilement sélectionner des lignes (données) ou des colonnes (attributs) d'un data frame selon un critère quelconque. Ce qui suit va être très utilisé dans les TPs par la suite.
On utilise des crochets [ pour spécifier les lignes/colonnes à sélection. La forme générale est :

> sommeil [lignes-à-sélectionner, colonnes-à-sélectionner]

Par exemple :

Pour obtenir le numéro des données sélectionnées, on utilise la fonction which appliquée au critère de sélection :

> which ((sommeil$Predation == 2) | (sommeil$Brain.Weight <= 3))

Le résultat est un vecteur d'indices que l'on peut utiliser comme on veut. Par exemple, on le stocke dans un objet nommé v :

> v <- which ((sommeil$Predation == 2) | (sommeil$Brain.Weight <= 3))

et utiliser ensuite ce vecteur pour sélectionner les élements de sommeil, par exemple :

> sommeil$Species [v]

Étude de la corrélation entre les attributs

Par corrélation entre deux attributs, on sous-entend comme toujours quand cela n'est pas spécifiée, linéaire, c'est-à-dire le rapport entre les valeurs de deux attributs. On a vu précédemment la fonction cor() pour calculer le coefficient de corrélation entre deux attributs.
Avant de calculer des coefficients de corrélation linéaire, lire cette page où j'explique coment interprêter la valeur de ce coefficient.

Matrice de corrélations

On s'intéresse à déterminer le coefficient de corrélation linéaire pour chaque couple d'attributs ; on obtient la matrice de corrélations. cor() s'appliquer à un data frame, du moment que tous les attributs en sont des nombres.

Calculez la matrice de corrélations pour le jeu de données sommeil. Prenez soin d'éliminer les données ayant des valeurs inconnues et prenez soin aussi de ne considérer que les attributs numériques.

Variations sur la corrélation linéaire

L'attribut Species contient le nom de l'espèce animale. read.csv() l'a considéré comme un facteur (un attribut nominal). C'est plutôt une chaîne de caractères. On transforme cet attribut en chaîne de caractère en tapant la commande :

> sommeil$Species <- as.character(sommeil$Species)

Faites-le.

La fonction nchar() fournit le nombre de caractères d'une chaîne de caractères. Par exemple nchar ("hello world!") renvoie 12.

On observe régulièrement des corrélations linéaires impliquant le log d'une quantité plutôt que la quantité elle-même.

Tables de contingence

Il est courant d'avoir besoin de calculer une table de contingence, c'est-à-dire pour un attribut discret, le nombre de données ayant chacune des valeurs de cet attribut.
La fonction table() renvoie une table de contingence. Utilisez la page d'aide de cette fonction pour obtenir la table de contigence pour l'attribut Predation.