Les données R
Les données R | |
---|---|
⚐ | ☸ |
⚒ 2014/11/19 |
Les données R
Pour profiter pleinement de divers paquets il faut comprendre (a) les types de structures de données de R et (b) les structures de données implémentés par divers paquets et (c) comment passer d'une structure à l'autre et finalement (d) comment lire des données depuis des fichiers ou d'autres sources.
Plusieurs paquets utilisent des simples structures de données de base comme les vecteurs ou les matrices. D'autres utilisent des structures plus sophistiqués
Les structure de données R
Il existe 6 types de données simples, c-a-d le type de valeurs que l'on peut mettre dans un vecteur: "logical", "integer", "double", "complex", "character", "raw".
- Comment savoir le type d'une donnée ?
- Note lorsqu'on utilise cette fonction avec un vecteur, le résultat montre pas "vector", mais le type de données utilisées
- Utilisez la fonction
typeof
- typeof (truc)
Les vecteurs
- Contiennent une liste ordonnée de N éléments
- Construction manuelle d'une liste
- Il existe plusieurs méthodes. Le plus souvent on voit la fonction combine:
c()
- proverbe = c("un", "mot", "dit", "plus", "que", "une", "image");
- Extraire des éléments
> proverbe[1]
[1] "un"
> proverbe[2:3]
[1] "mot" "dit"
Les facteurs
- Il s'agit d'une sorte de vecteur qui stocke de façon un peu plus efficace des chaînes de caractères et c'est surtout utile lorsqu'on a des longues listes de valeurs nominales)
- Construction
- On utilise la fonction
factor
pour transformer un vecteur en facteur
> proverbe2 = c ("mot", "image", "mot", "image", "mot")
> facts = factor(proverbe2)
> facts
[1] mot image mot image mot
Levels: image mot
> proverbe2
[1] "mot" "image" "mot" "image" "mot"
Les listes
Une liste est comme un vecteur, mais peut contenir des données de type différent, y compris des listes. La représentation d'une liste est un peu plus verbeuse.
- Une liste simple se construit comme un vecteur, enfin on utilise la fonction
list
// Un vecteur
>emotions = c ("n", "chaud", "n", "chaud", "n", "froid")
>valeurs = c (0,2,0,1,0,-2)
// Une liste
> emotions2 = list ("n", "chaud", "n", "chaud", "n", "froid")
> emotions
[[1]]
[1] "n"
[[2]]
[1] "chaud"
[[3]]
[1] "n"
[[4]]
[1] "chaud"
[[5]]
[1] "n"
[[6]]
[1] "froid"
Une liste qui contient des listes peut se construire à partir de listes ou de vecteurs. Les listes imbriquées ne doivent pas forcément avoir la même longueur.
- Liste qui contient des vecteurs
> liste_10 = list (proverbe, emotions, valeurs)
> liste_10
[[1]]
[1] "un" "mot" "dit" "plus" "que" "une" "image"
[[2]]
[1] "n" "chaud" "n" "chaud" "n" "froid"
[[3]]
[1] 0 2 0 1 0 -2
- Exemple qui contient une liste
emotions2 = list ("n", "chaud", "n", "chaud", "n", "froid")
> liste_11 = list (proverbe2, emotions, valeurs)
> liste_11
[[1]]
[1] "mot" "image" "mot" "image" "mot" "image"
[[2]]
[[2]][[1]]
[1] "n"
[[2]][[2]]
[1] "chaud"
[[2]][[3]]
[1] "n"
[[2]][[4]]
[1] "chaud"
[[2]][[5]]
[1] "n"
[[2]][[6]]
[1] "froid"
[[3]]
[1] 0 2 0 1 0 -2
> liste_11[2]
[[1]]
[[1]][[1]]
[1] "n"
[[1]][[2]]
[1] "chaud"
[[1]][[3]]
[1] "n"
[[1]][[4]]
[1] "chaud"
[[1]][[5]]
[1] "n"
[[1]][[6]]
[1] "froid"
- Afficher un élément de liste
// Lister le 2ème élément (une liste dans notre cas)
> liste_10[2]
[[1]]
[1] "n" "chaud" "n" "chaud" "n" "froid"
Les listes à clefs
On peut donner un nom à des éléments de liste. Cela permet par exemple de faire des simples base de données ou encore de "tagger" les mots d'un texte avec des annotations.
> phrase_courte = list (art="un", sujet="mot", verbe="dit")
> phrase_courte
$art
[1] "un"
$sujet
[1] "mot"
$verbe
[1] "dit"
Les matrices
- Les matrices sont des tableaux à N dimensions, typiquement un tableau à 2 dimensions. Pensez à une feuille de tableur.
- Une matrice contient des éléments du même type, par exemple des nombres ou encore des "strings" (chaîne de caractères) comme dans les exemples ci-dessous. Autrement dit, dans une matrice on ne peut pas retrouve à la fois des nombres et des strings.
- Construction manuelle d'une matrice à partir d'une liste
> m <- matrix(c('ah', 'be', 'cé', 'dé', 'euh', 'eff', 'gé', 'asch'), nrow = 2)
> m
[,1] [,2] [,3] [,4]
[1,] "ah" "cé" "euh" "gé"
[2,] "be" "dé" "eff" "asch"
- Construction d'une matrice à partir de vectors
- Notez que l'on construit d'abord un long vecteur avec la fonction c
mat <-matrix ( c(phrase_courte, phrase_courte2, phrase_courte3), nrow=3)
mat
- Extraire des données
- On utilise aussi la notation
[,]
> m[1,]
[1] "ah" "cé" "euh" "gé"
> m[,2]
[1] "cé" "dé"
> m[2,1]
[1] "be"
Les array
- Les array (tableaux en français) ressemblent à des matrices, mais contiennent des informations supplémentaires
.....
Les data frames
Un data frame un tableau composé de type de données différentes. On peut conceptualiser cela comme une sorte de combinaison entre une matrice et une liste à N dimensions.
- Construction manuelle d'un data frame
- On construit d'abord des simples vecteurs (pas de listes!) et ensuite on les combine
phrase_courte = c (art="un", sujet="mot", verbe="dit")
phrase_courte
phrase_courte2 = c (art="une", sujet="image", verbe="parle")
phrase_courte2
phrase_courte3 = c (art="une", sujet="idee", verbe="est")
phrase_courte3
phrases <-data.frame (phrase_courte, phrase_courte2, phrase_courte3)
phrases
> phrases
phrase_courte phrase_courte2 phrase_courte3
art un une une
sujet mot image idee
verbe dit parle est