Vous savez comment filtrer un jeu de données avec dplyr ? : filter(), on peut donc utiliser une règle pour filtrer sur les valeurs manquantes (les fameux NA) en utilisant la fonction is.na. library(dplyr) df <- tibble(x1 = c(1, 2, NA, 4), x2 = c(« a », NA, « b », « c »), y = c(NA, TRUE, FALSE, TRUE)) df %>% filter(!is.na(x1)) Mais si vous voulez supprimer les lignes qui contiennent des NA dans plusieurs colonnes, voire toutes les colonnes, il vaut mieux utiliser drop_na du package {tidyr}. Vous pourrez même utiliser les « helpers » comme pour la fonction select de {dplyr} pour choisir les colonnes avec des règles. library(tidyr) dfRead More →

Comme on est dans le {tidyverse}, on va utiliser les bons termes : Nous allons utiliser le pipe pour rendre le code plus clair ( Le pipe, qu’est-ce que c’est ? ) On ne travaille plus avec des dataframes, mais avec des tibble: (tibble ou data.frame ?) Et donc on ne supprime pas de ligne, mais on filtre les données en fonction d’une condition. En effet, si vous souhaitez retirer des lignes de données, vous avez sûrement une bonne raison. Cette bonne raison se trouve dans les données elles-mêmes. Vous utilisez donc cette information pour filtrer les données. library(dplyr) iris %>% filter(Species != « setosa ») PourRead More →

Un shapefile est un fichier d’information géographique avec un format vectoriel. Il permet de représenter des points (e.g. villes), des lignes (e.g. routes) et des polygones (e.g. départements) avec un système d’information géographique. Le format shapefile est composé de plusieurs fichiers séparés (4 minimum): data.shp : informations de géométrie (coordonnées) data.prj : information de système de projection data.dbf : table des attributs data.shx : indice de position des géométries Dans R, deux packages majeurs sont utilisés pour manipuler les données géographiques de type vectoriel: {sp} : Le package de référence. Il utilise notamment la librairie {rgdal} pour lire les données géographiques, un package utilisant laRead More →

Si vous souhaitez unifier plusieurs colonnes en une seule, faites appel à la fonction unite(), issue du package tidyr. Cette fonction prends en premier argument le nom de l’objet contenant le tableau, la colonne cible, les colonnes à lier, puis un éventuel séparateur. Notez que le séparateur de base est « _ ». data(« msleep ») library(tidyr) unite(msleep, genusvore, genus, vore, sep = « -« )Read More →

Pour ajouter une colonne, direction la fonction mutate. Avec celle-ci, vous pouvez insérer un objet externe au tableau (par exemple une liste), ou le résultat de l’opération sur une ou plusieurs colonnes. data(« faithfuld ») library(dplyr) mutate(faithful, index= 1:nrow(faithful), er.wa = eruptions / waiting)Read More →

La fonction seconds_to_period(), du package lubridate, permet de convertir un nombre de secondes en une période, et la fonction period_to_seconds() permet de convertir une période en un nombre de secondes. seconds_to_period(60) [1] « 1M 0S » seconds_to_period(150) [1] « 2M 30S » seconds_to_period(3600) [1] « 1H 0M 0S » seconds_to_period(4989000) [1] « 57d 17H 50M 0S »     period_to_seconds(seconds_to_period(60)) [1] 60 period_to_seconds(seconds_to_period(150)) [1] 150 period_to_seconds(seconds_to_period(3600)) [1] 3600 period_to_seconds(seconds_to_period(4989000)) [1] 4989000  Read More →

La fonction DateUpdate(), du package lubridate, permet de modifier les composantes d’une date : l’année, le mois… ou encore les secondes. Cette fonction renvoie la date modifiée. library(lubridate)  #On crée un date  date <- as.POSIXct(« 2009-02-10 ») date [1] « 2009-02-10 CET »   update(date, year = 2010, month = 1, days = 1) [1] « 2010-01-01 CET »   update(date, minute = 10, second = 3) [1] « 2009-02-10 00:10:03 CET »    Read More →

La fonction ceilling_date(), du package lubridate, permet d’arrondir une donnée de type « date » à la date la plus grande en fonction de différentes unités : library(lubridate)   x <- as.POSIXct(« 2009-08-03 12:01:57.23 »)   ceiling_date(x, « second ») [1] « 2009-08-03 12:01:58 CEST » #On arrondit à la seconde la plus grande   ceiling_date(x, « minute ») [1] « 2009-08-03 12:02:00 CEST » #On arrondit à la minute la plus grande   ceiling_date(x, « hour ») [1] « 2009-08-03 13:00:00 CEST » #On arrondit à l’heure la plus grande   ceiling_date(x, « day ») [1] « 2009-08-04 CEST » #On arrondit au jour le plus grand   ceiling_date(x, « week ») [1] « 2009-08-09 CEST »   ceiling_date(x, « month ») [1] « 2009-09-01 CEST »   ceiling_date(x, « year ») [1] « 2010-01-01 CEST »  Read More →

La fonction melt(), qui fait partie du package reshape2, permet de regrouper les différentes parties d’un array dans un data.frame. library(reshape)   a <- array(c(1:11, NA), c(2,2,3),dimnames=list(NULL, NULL, c(« A », »B », »C »))) a , , A        [,1] [,2] [1,]    1    3 [2,]    2    4   , , B        [,1] [,2] [1,]    5    7 [2,]    6    8   , , C        [,1] [,2] [1,]    9   11 [2,]   10   NA     melt(a, na.rm = TRUE) #On fusionne A, B et C #na.rm permet d’enlever les « NA » du jeu de données   melt(a,na.rm = TRUE, varnames=c(« abscisses », »ordonnées », »variables »)) #On fait la même chose mais cette foisRead More →

b <- array(c(1:11, NA), c(2,2,3))          #On crée un objet de type « array »  dimnames(b)<-list(NULL, NULL, c(« Temp », »Haut », »Long »)) #On attribue un nom aux trois sections de l’array :  « Temp », »Haut » et « Long »   On obtient : > b , , Temp        [,1] [,2] [1,]    1    3 [2,]    2    4   , , Haut        [,1] [,2] [1,]    5    7 [2,]    6    8   , , Long        [,1] [,2] [1,]    9   11[2,]   10   NARead More →