Mis a jour le 2016-05-22, 16:22

Data Frames et Facteurs

Facteurs

Facteur : type de vecteur qui code pour une propriété qualititative (attribut nominal) qui est codé en interne par un numéro et non par la chaîne de caractère représentant sa valeur. Exemple :
fac <- factor(c("rouge", "vert", "rouge", "bleu", "vert"))
On peut connaître les différentes possibilités de valeur d'un facteur avec levels :
levels(fac) donne "bleu" "rouge" "vert"
Ce sont les valeurs possibles, même si le facteur ne les utilise pas toutes (par exemple levels(fac[1]) donne les mêmes 3 valeurs.
On peut imposer l'ordre des facteurs, quand le premier facteur a une importance particulière :
Mise à jour des niveaux : quand on extrait un sous-facteur, certains niveaux peuvent avoir disparu. On peut alors utiliser factor pour éliminer ces niveaux qui ne sont plus représentés :
fac2 <- fac[1:3]; fac2 <- factor(fac2); levels(fac2) donne "rouge" "vert"
Boucle sur les valeurs d'un facteur :
Si fac <- factor(c("a", "b", "a", "c"))
Génération d'un vecteur de facteurs :
gl(3, 2, 6, labels = c("rouge", "orange", "vert")) : génère un vecteur de facteurs pouvant prendre 3 valeurs, chaque valeur étant répétée 2 fois pour une longueur total de 6.
Génération d'un vecteur de facteurs d'interactions :
Si fac1 <- factor(c("a", "b", "a")); fac2 <- factor(c("B", "A", "C", "B", "C", "B")), alors interaction(fac1, fac2) donne le vecteur de facteurs a.B b.A a.C a.B b.C a.B pris parmi tous les niveaux possibles (levels(interaction(fac1, fac2)) vaut "a.A" "b.A" "a.B" "b.B" "a.C" "b.C")
Transformation de valeurs numériques en niveaux : cut(seq(0, 5, 0.2), breaks = 5) remplace les valeurs de la séquence par l'un des 5 intervalles auquel chaque valeur appartient.
Recodage d'une variable nominale pour remplacer par exemple tous les A par des x et tous les B par des y, grâce au package doBy (non installé par défaut) :

Dataframes

Data frame : sorte de matrice où chaque colonne peut avoir son type (contrairement à une matrice dont tous les éléments doivent avoir le même type). Les colonnes représentent les variables et les lignes les individus.
Création d'un dataframe :fr <- data.frame(age = c(15,20), nom = c("pierre", "jean"), row.names = c("I1", "I2")). Les noms des colonnes sont alors age et nom, et les noms des lignes sont I1 et I2. Préciser le nom des lignes est optionnel (row.names optionnel). Attention : par défaut, le type d'une colonne avec des chaînes de caractère est factor :
Pour empêcher que le type des colonnes de type caractère soit factor, il faut faire :
fr <- data.frame(age = c(15,20), nom = c("pierre", "jean"), stringsAsFactors = FALSE)
On peut référencer les colonne d'un dataframe par le nom de la colonne pour par son numéro :
Accès aux nom des lignes et des colonnes :
Récupération d'une seule ligne ou d'une seule colonne :
Récupération de plusieurs lignes ou plusieurs colonnes :
cbind et rbind : comme avec les matrices,
Rajout d'une colonne à un dataframe :
Pour éliminer une colonne d'un dataframe, par exemple la colonne col1 du dataframe fr : fr$col1 <- NULL
summary : fait un résumé sur chaque variable (chaque colonne du frame).
attach/detach :
Création d'un dataframe qui est le produit cartésien de vecteurs ou facteurs :
Renvoi des lignes de début ou de fin d'un data frame :

Copyright Aymeric Duclert
programmer en R, tutoriel R, graphes en R