# Programmer en R/Manipuler les vecteurs

* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
* Introduction
** Faire ses premiers pas
** Installer R
** Choisir son environnement de travail
** Installer des librairies
** Se documenter
* Manipulation et mise en forme des données
** Manipuler les nombres
** Manipuler les vecteurs
** Manipuler les chaînes de caractères
** Manipuler les facteurs
** Manipuler les dates et les heures
** Manipuler un tableau de données
** Manipuler une liste
* Importation et exportation des données
** Importer un fichier CSV
** Résoudre les problèmes d'encodage des caractères
** Importer un fichier TSV
** Importer un fichier texte à largeur fixe
** Importer des données depuis un tableur
** Import un fichier JSON
** Extraire des données d'une page web
* Visualisation de données
** Comprendre la grammaire des graphiques
** Représenter une carte
** Visualiser une carte choroplèthe
* Modélisation statistique
** Estimer un modèle de régression linéaire
** Estimer un modèle de régression circulaire
* Communication
* Programmation avancée
** Programmer une boucle
** Programmer une fonction
* Outils mathématiques
** Optimiser une fonction
** Manipuler les matrices
** Les fonctions statistiques de base
** Les loi de probabilités, ajustement et test
[ Modifier le sommaire ]

## Notion de vecteur

Dans le chapitre précédent on a pu voir qu'un nombre possède deux types numeric et vector. En réalité il s'agit d'un vecteur qui ne contient qu'un seul nombre.
La notion de vecteur est essentielle. C'est cette structure de donnée qui est utilisée lorsque l'on veut traiter une série de donnée.
Bien qu'étant essentiellement une série de valeurs, R fournit tout de même des opérateurs et fonctions permettant de traiter les vecteurs comme en géométrie ou en algèbre (somme, produit par un scalaire, produit scalaire entre deux vecteurs).

## Initialisation d'un vecteur

La fonction c permet de créer un vecteur. Tous les éléments d'un vecteur doivent être du même type.
Les nombres [1], ..., [5] apparaissant ci-dessus sont les indices des différents éléments du vecteur. Le premier indice d'un vecteur est 1.
Plusieurs fonctions permettent de créer des vecteurs :
| Fonction | Description | Syntaxe |
| c | Crée un vecteur à partir des éléments donnés en paramètre. | c(..., recursive=FALSE) |
| seq | Crée une suite arithmétique. | seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), length.out = NULL, along.with = NULL, ...) |
| : | Crée une suite arithmétique de raison 1. from:to est équilavent à seq (from, to) | from:to |
| rep | Duplique la valeur de x | rep(x, ...) |

## Extraire ou assigner une composante

Pour avoir accès à la valeur du i-ème élément, on utilise la notation [i] ; si l'on veut les éléments i, j et k, on utilise un vecteur d'indices [c(i, j, k)].
On peut aussi utiliser un vecteur de booléens ; R extrait alors les éléments correspondant aux valeurs vraies. Par exemple :

## Arithmétique des vecteurs

Les opérations arithmétiques entre deux vecteurs de même dimension sont des opérations terme à terme. Une opération arithmétique entre deux vecteurs de même dimension retourne un vecteur dont les éléments correspondent à l'opération arithmétique effectuée pour l'indice correspondant des vecteurs donnés en argument.
La somme de deux vecteurs correspond donc à la notion algébrique.
Si un vecteur est plus petit que l'autre, R répète les valeurs du plus petit vecteur jusqu'à générer un vecteur de même taille que le plus grand. En particulier, si un des vecteurs est un scalaire, alors R applique l'opération entre le scalaire et tous les éléments du vecteur
Pour déterminer les nombres impairs :
Ainsi, l'opération multiplication d'un vecteur par un scalaire correspond à l'opération algébrique.

## Opérations algébriques

L'opérateur %*% (pourcent-astérisque-pourcent) effectue un produit scalaire, en supposant la base orthonormale :
Notons que le résultat est une matrice d'une seule composante (un tableau d'une seule case). On peut extraire le résultat en prenant l'élément (1, 1) de la matrice, ou bien en faisant la somme cumulée de ce vecteur :
On peut ainsi calculer la norme du vecteur par

## Vecteur comme suite de valeurs

Le vecteur peut aussi représenter une suite u$_1$, u$_2$, …, u$_n$. Le logiciel R fournit les fonctions :
* min, max : donne la valeur respectivement minimale et maximale de la suite ;
* cumsum : effectue la somme cumulée du vecteur ; cela correspond à la somme de la série ; cette fonction renvoie un vecteur de même taille que le vecteur initial, contenant (u$_1$, u$_1$ + u$_2$, …, ∑u$_n$) ;
* cumprod : effectue le produit cumulé du vecteur ; cette fonction renvoie un vecteur de même taille que le vecteur initial, contenant (u$_1$, u$_1$×u$_2$, …, ∏u$_n$) ;
* cummax, cummin : renvoie respectivement le maximum et le minimum cumulé ; le résultat est un vecteur de même taille, l'élément i étant max{u$_j$, j ∈ [1 ; i]} (resp. min{u$_j$, j ∈ [1 ; i]}).