TP 1

Ce premier TP a pour objectif d'apprendre à charger et manipuler un fichier de données relativement gros, gérer des dates, et faire quelques manipulations.

Ce TP est réalisé sous Linux. Sachez néanmoins que R fonctionne sous Linux, Windows et MacOS d'une manière générale. Nous recommendons néanmoins son utilisation sous Linux comme étant la plus fiable de toute.

Table des matières :

Chargement des données dans R

Obtenir un fichier CSV

La source de données est le fichier situé à l'url https://philippe-preux.github.io/ensg/miashs/m2/tps/tp1/ufo.us.ods.
Comme son nom l'indique, il s'agît d'une feuille qui s'ouvre avec libreoffice.

Pour charger des données dans R, il est très utile qu'elles soient dans un fichier CSV.
Mettez ces données dans un fichier CSV. Vous prendrez soin d'indiquer :

Premier contact avec ce jeu de données

Lire une date

Les deux premiers attributs de ce jeu de données sont des dates. On rencontre très fréquemment des dates dans les jeux de données. Aussi, on explique ci-dessous comment elles sont gérées dans R, avant de revenir à ce jeu de données.
On veut donc lire une date, éventuellement avec une heure spécifiée ce jour-là. On s'intéresse ici aux situations les plus courantes.

Lire juste une date

On rencontre souvent des dates au format français (jour/mois/année) ou au format américain (mois/jour/année). Le mois peut être spécifié par son numéro ou son nom, ou son nom abrégé (en français ou en anglais) ; on a parfois aussi le nom du jour (en français ou en anglais). L'année peut être spécifiée par 2 ou 4 chiffres. S'il n'y a que deux chiffres, cela s'entend dans la centaine d'année courante (en ce moment, 13 doit se comprendre comme 2013 alorsqu'il y a vingt ans, cela se comprenait comme 1913).
Une fonction R très pratique pour cela est as.Date() qui s'utilise comme suit :

> as.Date (une-chaine-de-caractères-représentant-une-date, format = format-décrivant-la-manière-dont-est-représentée-la-date-dans-la-chaine)

Quelques exemples :

On voit que l'on peut séparer le jour du mois de l'année avec des séparateurs différents, du moment qu'on l'indique dans le format. De même, l'ordre des 3 informations (jour, mois, année) est spécifié dans le format.
Il y a de nombreux formats possibles. Voir l'aide de la fonction strptime() pour en avoir la liste.

En utilisant l'aide, déterminez comment R interprête as.Date ("2/10/15").

Il est facile d'ajouter ou retirer un nombre de jours à une date, de calculer le nombre de jours séparant deux dates et de comparer deux dates (par rapport à l'ordre chronologique).
Exemple : as.Date ("2/10/2015", format = "%d/%m/%Y") + 78
Exemple : as.Date ("2/10/2015", format = "%d/%m/%Y") < as.Date ("23/3/2014", format = "%d/%m/%Y")

Séquence de dates

On peut créer une séquence de dates avec la fonction seq.Date () qui s'utilise comme seq().

En utilisant seq.Date(), créer une séquence des 1er janvier de 1990 à 2010.
En utilisant seq.Date(), créer une séquence des 1er de chaque mois allant de juin 1990 à mai 1992.

Lire une date avec une heure

Bien que l'on puisse utiliser as.Date() pour lire une date avec une heure, il est recommendé d'utiliser une autre fonction. On a le choix entre deux possibilités. Le choix de l'une ou de l'autre est dictée par l'utilisation que l'on veut faire des dates. Comme as.Date(), ces deux fonctions prennent une chaîne de caractères et un format en paramètre.
Par exemple :

En tapant ces deux commandes, on ne voit pas de différence. Néanmoins, il y a une grosse différence mais R la cache un peu.

On peut ajouter/retirer une durée à une date créée de cette manière. Cette fois-ci, une unité représente une seconde.

Afficher une date dans un format précis

La fonction format() permet d'afficher une date (ou un peu n'importe quoi puisque son comportement s'adapte au type d'objet que l'on veut afficher) selon un format précis.

La fonction Sys.Date() renvoie la date présente et la fonction Sys.time() renvoie l'instant présent. Utilisez la fonction format() pour afficher l'instant présent sous chacune des formes suivantes :

Les dates dans le jeu de données

Les dates sont ici stockées de manière très simple, sous la forme de chaînes de 10 caractères, inadaptées à leur manipulation dans R. On va les transformer pour que l'on puisse les manipuler. Par exemple, le premier attribut de la toute première donnée a la valeur 1995-10-09. Celle-ci doit se lire comme la date : 9 octobre 1995. Le format est fixé : les 4 premiers chiffres forment l'année, les deux suivants forment le numéro du mois et les deux derniers forment le quantième du mois.

Évolution temporelle

On va s'intéresser à l'évolution temporelle du nombre d'observations.

Faire une carte

On va produire une représentation graphique de la répartition géographique des observations.

Pour démarrer, on va construire une table de contingence donnant pour chaque état le nombre d'observations qui y ont été faites.
Aide : la fonction table() est très utile pour cela.

À suivre...