Date : 29/01/2025 \[Auteurs : Ben~Iman,~Oumar\]

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## 
## Attaching package: 'lubridate'
## The following objects are masked from 'package:base':
## 
##     date, intersect, setdiff, union
## 
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
## 
##     smiths
## ℹ Google's Terms of Service: <https://mapsplatform.google.com>
##   Stadia Maps' Terms of Service: <https://stadiamaps.com/terms-of-service/>
##   OpenStreetMap's Tile Usage Policy: <https://operations.osmfoundation.org/policies/tiles/>
## ℹ Please cite ggmap if you use it! Use `citation("ggmap")` for details.

Activité 1 : DataFrame avec des dates

Tâche 1 : Création d’un DataFrame avec la date au format date de R

# Dates brutes
date_brut <- c("2023/01/01", "2023/01/02", "2023/01/03", "2023/01/04", "2023/01/05", "2023/01/06", "2023/01/07", "2023/01/08", "2023/01/09", "2023/01/10")

Price <- c(100, 105, 110, 108, 112, 115, 118, 120, 122, 125)

# Conversion des dates au format Date en R
date_form_r <- as.Date(date_brut, format = "%Y/%m/%d")

# Création du DataFrame
Data1 <- data.frame(Date = date_form_r, Price = Price)

Data1
##          Date Price
## 1  2023-01-01   100
## 2  2023-01-02   105
## 3  2023-01-03   110
## 4  2023-01-04   108
## 5  2023-01-05   112
## 6  2023-01-06   115
## 7  2023-01-07   118
## 8  2023-01-08   120
## 9  2023-01-09   122
## 10 2023-01-10   125

Représentation graphique Tâche 1

# Création du graphique
ggplot(Data1, aes(x = Date, y = Price)) +
  geom_line(color = "blue") +  # Ligne bleue pour les prix
  geom_point(color = "red") +  # Points rouges pour chaque observation
  labs(title = "Évolution des Prix au Fil du Temps", x = "Date", y = "Prix") + theme_minimal()

Remarque : Il faudrait arrondir les nombres à virgule à l’unité.

Tâche 2 : Création et ajout de nouvelles colonnes représentant les mois, les semaines et les jours.

# Générer une séquence de dates
date1 <- as.POSIXct("2016/01/02", format = "%Y/%m/%d")
date2 <- as.POSIXct("2016/10/02", format = "%Y/%m/%d")

dates <- seq(from = date1, to = date2, by = "month") # Séquence mensuelle

#DataFrame avec les dates
data2 <- data.frame(id = 1:length(dates), Dates = dates)

# Ajouter les colonnes annee et mois en utilisant mutate et les fonctions year et month de lubridate
data2 <- data2 %>%mutate(
    mois = month(Dates),  # Extraire le mois
    semaine = week(Dates), # Extraire le numéro de la semaine
    jour = weekdays(Dates) # Extraire le jour
  )

#Affichage
data2
##    id      Dates mois semaine      jour
## 1   1 2016-01-02    1       1  Saturday
## 2   2 2016-02-02    2       5   Tuesday
## 3   3 2016-03-02    3       9 Wednesday
## 4   4 2016-04-02    4      14  Saturday
## 5   5 2016-05-02    5      18    Monday
## 6   6 2016-06-02    6      22  Thursday
## 7   7 2016-07-02    7      27  Saturday
## 8   8 2016-08-02    8      31   Tuesday
## 9   9 2016-09-02    9      36    Friday
## 10 10 2016-10-02   10      40    Sunday

Tâche 3 : Création et ajout de nouvelles colonnes correspondant aux minutes et secondes

# Générer une séquence de dates en inculant le temps
date1 <- as.POSIXct("23/01/2025 15:00:00", format = "%d/%m/%Y %H:%M:%S", tz = "UTC")
date2 <- as.POSIXct("23/01/2025 21:00:00", format = "%d/%m/%Y %H:%M:%S", tz = "UTC")

# Générer une séquence horaire entre date1 et date2 ; intervalle: 1 heure
x <- seq(from = date1, to = date2, by = "hour")


data3 <- data.frame(id = 1:length(x),Temps = x)  # Séquence horaire

# Ajouter des colonnes correspondant aux minutes et secondes
data3 <- data3 %>%mutate(minutes = minute(Temps),secondes = second(Temps))

# Afficher le DataFrame résultant
data3
##   id               Temps minutes secondes
## 1  1 2025-01-23 15:00:00       0        0
## 2  2 2025-01-23 16:00:00       0        0
## 3  3 2025-01-23 17:00:00       0        0
## 4  4 2025-01-23 18:00:00       0        0
## 5  5 2025-01-23 19:00:00       0        0
## 6  6 2025-01-23 20:00:00       0        0
## 7  7 2025-01-23 21:00:00       0        0

Tâche 4 : Ajout du temps écoulé depuis la date d’aujourd’hui en jours, semaines, mois et années, selon le tableau suivant.

Errare humanum

# Date de base : aujourdh'hui
today <- Sys.Date()

# Exemple de DataFrame avec des temps écoulés
data4 <- data.frame(
  Date = seq(today, length.out = 10, by = "days")
)

# Ajout des colonnes
data4$Jours_ecoules <- as.numeric(today - data4$Date)
data4$Semaines_ecoulees <- data4$Jours_ecoules / 7
data4$Mois_ecoules <- data4$Jours_ecoules / 30
data4$Annees_ecoulees <- data4$Jours_ecoules / 365

data4
##          Date Jours_ecoules Semaines_ecoulees Mois_ecoules Annees_ecoulees
## 1  2025-02-17             0         0.0000000   0.00000000     0.000000000
## 2  2025-02-18            -1        -0.1428571  -0.03333333    -0.002739726
## 3  2025-02-19            -2        -0.2857143  -0.06666667    -0.005479452
## 4  2025-02-20            -3        -0.4285714  -0.10000000    -0.008219178
## 5  2025-02-21            -4        -0.5714286  -0.13333333    -0.010958904
## 6  2025-02-22            -5        -0.7142857  -0.16666667    -0.013698630
## 7  2025-02-23            -6        -0.8571429  -0.20000000    -0.016438356
## 8  2025-02-24            -7        -1.0000000  -0.23333333    -0.019178082
## 9  2025-02-25            -8        -1.1428571  -0.26666667    -0.021917808
## 10 2025-02-26            -9        -1.2857143  -0.30000000    -0.024657534

Tâche 5 : Série temporelle

Une série temporelle, c’est une suite de données qui change avec le temps. Par exemple, les températures chaque jour ou le nombre de ventes chaque mois. On les organise pour voir comment elles évoluent au fil du temps.

# === Création d'une série temporelle annuelle avec des valeurs de 1 à 20 ===
serie_annuelle <- ts(1:20, start = 2003, frequency = 1)

# La série commence en 2003 et chaque observation correspond à une année (fréquence = 1)


# === Création d'une série temporelle mensuelle avec des valeurs de 41 à 60 ===
serie_mensuelle <- ts(41:60, start = c(2003, 1), frequency = 12)

# La série commence en janvier 2003, chaque observation représente un mois (fréquence = 12)


# === Création d'une série temporelle trimestrielle avec des valeurs de 41 à 60 ===
serie_trimestrielle <- ts(41:60, start = c(2003, 1), frequency = 4)

# La série commence au premier trimestre 2003, chaque observation représente un trimestre (fréquence = 4)
  • Faisons des représentations graphiques sous R en utilisant les données précédentes, avec la date au format Date de R en abscisse.

Répresentation de la série temporelle mensuelle

data <- data.frame(
  Time = time(serie_mensuelle),
  Value = as.numeric(serie_mensuelle)
)

ggplot(data, aes(x = Time, y = Value)) +
  geom_line(color = "blue") +
  labs(title = "Série Temporelle", x = "Temps", y = "Valeur") +
  theme_minimal()
## Don't know how to automatically pick scale for object of type <ts>. Defaulting
## to continuous.

Activité 2 : Les types de datetime

Tâche 1 : DataFrame avec des données de ventes quotidiennes

# Création du DataFrame
date_start <- as.Date("2023-01-01")
sales_data <- data.frame(
  Date = seq(from = date_start, by = "day", length.out = 40),
  Sales = seq(from = 0, by = 1, length.out = 40)
)

# Affichage
sales_data
##          Date Sales
## 1  2023-01-01     0
## 2  2023-01-02     1
## 3  2023-01-03     2
## 4  2023-01-04     3
## 5  2023-01-05     4
## 6  2023-01-06     5
## 7  2023-01-07     6
## 8  2023-01-08     7
## 9  2023-01-09     8
## 10 2023-01-10     9
## 11 2023-01-11    10
## 12 2023-01-12    11
## 13 2023-01-13    12
## 14 2023-01-14    13
## 15 2023-01-15    14
## 16 2023-01-16    15
## 17 2023-01-17    16
## 18 2023-01-18    17
## 19 2023-01-19    18
## 20 2023-01-20    19
## 21 2023-01-21    20
## 22 2023-01-22    21
## 23 2023-01-23    22
## 24 2023-01-24    23
## 25 2023-01-25    24
## 26 2023-01-26    25
## 27 2023-01-27    26
## 28 2023-01-28    27
## 29 2023-01-29    28
## 30 2023-01-30    29
## 31 2023-01-31    30
## 32 2023-02-01    31
## 33 2023-02-02    32
## 34 2023-02-03    33
## 35 2023-02-04    34
## 36 2023-02-05    35
## 37 2023-02-06    36
## 38 2023-02-07    37
## 39 2023-02-08    38
## 40 2023-02-09    39

Tâche 2 : Rééchantillonnage des données à une fréquence mensuelle, en calculant la somme des ventes chaque mois.

# Reechantillonnage
ventes_mois_data <- sales_data%>%mutate(Mois = format(Date, "%Y-%m")) %>% group_by(Mois) %>% summarise(Ventes_totale = sum(Sales))

ventes_mois_data
## # A tibble: 2 × 2
##   Mois    Ventes_totale
##   <chr>           <dbl>
## 1 2023-01           465
## 2 2023-02           315

Tâche 3 : Différences entre les ventes de chaque jour

sales_data <-sales_data%>%mutate(Changement_quotidien = c(NA, diff(Sales)))
                                 
# Utilisation de la fonction mutate pour ajouter une nouvelle colonne
# La nouvelle colonne s'appelle 'Changement_quotidien' et contient les
# La fonction diff calcule la différence entre les éléments successifs du vecteur 'Sales'
# c(NA, ...) ajoute un NA au début du vecteur résultant pour aligner correctement les différences avec les dates
sales_data
##          Date Sales Changement_quotidien
## 1  2023-01-01     0                   NA
## 2  2023-01-02     1                    1
## 3  2023-01-03     2                    1
## 4  2023-01-04     3                    1
## 5  2023-01-05     4                    1
## 6  2023-01-06     5                    1
## 7  2023-01-07     6                    1
## 8  2023-01-08     7                    1
## 9  2023-01-09     8                    1
## 10 2023-01-10     9                    1
## 11 2023-01-11    10                    1
## 12 2023-01-12    11                    1
## 13 2023-01-13    12                    1
## 14 2023-01-14    13                    1
## 15 2023-01-15    14                    1
## 16 2023-01-16    15                    1
## 17 2023-01-17    16                    1
## 18 2023-01-18    17                    1
## 19 2023-01-19    18                    1
## 20 2023-01-20    19                    1
## 21 2023-01-21    20                    1
## 22 2023-01-22    21                    1
## 23 2023-01-23    22                    1
## 24 2023-01-24    23                    1
## 25 2023-01-25    24                    1
## 26 2023-01-26    25                    1
## 27 2023-01-27    26                    1
## 28 2023-01-28    27                    1
## 29 2023-01-29    28                    1
## 30 2023-01-30    29                    1
## 31 2023-01-31    30                    1
## 32 2023-02-01    31                    1
## 33 2023-02-02    32                    1
## 34 2023-02-03    33                    1
## 35 2023-02-04    34                    1
## 36 2023-02-05    35                    1
## 37 2023-02-06    36                    1
## 38 2023-02-07    37                    1
## 39 2023-02-08    38                    1
## 40 2023-02-09    39                    1

Tâche 4 : Calcul de la moyenne pour une fenêtre de 3 jours (moyenne mobile des prix sur 3 jours)

# Calcul de la moyenne mobile sur 3 jours
sales_data_2 <- sales_data %>%mutate(
    Moyennes_mobile_3j = zoo::rollmean(Sales, k = 3, fill = NA, align = "right")
    # La fonction rollmean calcule la moyenne mobile sur une fenêtre de taille k (ici 3 jours)
    # fill = NA indique de remplir les valeurs manquantes avec NA
    # align = "right" indique que la fenêtre de calcul est alignée à droite, c'est-à-dire que chaque valeur de la moyenne mobile 
    # correspond à la moyenne des 3 jours précédents
  )

# Affichage du DataFrame mis à jour pour visualiser les résultats
sales_data_2
##          Date Sales Changement_quotidien Moyennes_mobile_3j
## 1  2023-01-01     0                   NA                 NA
## 2  2023-01-02     1                    1                 NA
## 3  2023-01-03     2                    1                  1
## 4  2023-01-04     3                    1                  2
## 5  2023-01-05     4                    1                  3
## 6  2023-01-06     5                    1                  4
## 7  2023-01-07     6                    1                  5
## 8  2023-01-08     7                    1                  6
## 9  2023-01-09     8                    1                  7
## 10 2023-01-10     9                    1                  8
## 11 2023-01-11    10                    1                  9
## 12 2023-01-12    11                    1                 10
## 13 2023-01-13    12                    1                 11
## 14 2023-01-14    13                    1                 12
## 15 2023-01-15    14                    1                 13
## 16 2023-01-16    15                    1                 14
## 17 2023-01-17    16                    1                 15
## 18 2023-01-18    17                    1                 16
## 19 2023-01-19    18                    1                 17
## 20 2023-01-20    19                    1                 18
## 21 2023-01-21    20                    1                 19
## 22 2023-01-22    21                    1                 20
## 23 2023-01-23    22                    1                 21
## 24 2023-01-24    23                    1                 22
## 25 2023-01-25    24                    1                 23
## 26 2023-01-26    25                    1                 24
## 27 2023-01-27    26                    1                 25
## 28 2023-01-28    27                    1                 26
## 29 2023-01-29    28                    1                 27
## 30 2023-01-30    29                    1                 28
## 31 2023-01-31    30                    1                 29
## 32 2023-02-01    31                    1                 30
## 33 2023-02-02    32                    1                 31
## 34 2023-02-03    33                    1                 32
## 35 2023-02-04    34                    1                 33
## 36 2023-02-05    35                    1                 34
## 37 2023-02-06    36                    1                 35
## 38 2023-02-07    37                    1                 36
## 39 2023-02-08    38                    1                 37
## 40 2023-02-09    39                    1                 38

Tâche 5 : Représentations graphiques

- Évolution des ventes quotidiennes

# Graphique de l'évolution des ventes quotidiennes
ggplot(sales_data, aes(x = Date, y = Sales)) + geom_line(color = "blue") + labs(title = "Évolution des ventes quotidiennes", x = "Date", y = "Ventes") + theme_minimal()

- Ventes totales par mois

ggplot(ventes_mois_data, aes(x = Mois, y = Ventes_totale)) +
  geom_bar(stat = "identity", fill = "orange") +
  labs(title = "Ventes totales par mois", x = "Mois", y = "Ventes totales") +
  theme_minimal()

- Variations journalières des ventes

ggplot(sales_data, aes(x = Date, y = Changement_quotidien)) + geom_bar(stat = "identity", fill = "purple") + labs(title = "Variations journalières des ventes", x = "Date", y = "Variation") + theme_minimal()
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_bar()`).

Remarque : Il y a des valeurs vides dans la colonne “changement quotidien”, d’où le message d’avertissement (“warning”).

- Moyenne mobile sur 3 jours

# Affichage du graphique avec les données mises à jour
ggplot(sales_data_2, aes(x = Date, y = Moyennes_mobile_3j)) +
  geom_line(color = "green") +
  labs(title = "Moyenne mobile sur 3 jours", x = "Date", y = "Moyenne mobile") +
  theme_minimal()
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`geom_line()`).

Même remarque que précédemment


\[Author : Ben~Iman~ABDALLAH\] - Date : 01/2025

Activité 3 : Opérations de manipulation des données textuelles

data_textuelle <- tibble(nom = c("Mr Eric Legrand", "Mme Anabelle Dupont", "Mme Fatou Slaoui"), adresse = c("12 rue Archimède", "47 avenue de la Libération", "3 rue des Fleurs"), ville = c("Niort", "Poitiers", "Marseille"))
data_textuelle
## # A tibble: 3 × 3
##   nom                 adresse                    ville    
##   <chr>               <chr>                      <chr>    
## 1 Mr Eric Legrand     12 rue Archimède           Niort    
## 2 Mme Anabelle Dupont 47 avenue de la Libération Poitiers 
## 3 Mme Fatou Slaoui    3 rue des Fleurs           Marseille

Tâche 1 :

▶ Je transforme les noms, adresses et ville en majuscules, minuscules et capitalisant dans le tableau précédent.

data_textuelle_change_1 <- data_textuelle%>%mutate(
  nom_min = str_to_lower(nom),
  nom_maj = str_to_upper(nom), 
  adresse_min =str_to_lower(adresse), 
  adresse_maj = str_to_upper(adresse),
  ville_min = str_to_lower(ville), ville_maj = str_to_upper(ville))
data_textuelle_change_1
## # A tibble: 3 × 9
##   nom            adresse ville nom_min nom_maj adresse_min adresse_maj ville_min
##   <chr>          <chr>   <chr> <chr>   <chr>   <chr>       <chr>       <chr>    
## 1 Mr Eric Legra… 12 rue… Niort mr eri… MR ERI… 12 rue arc… 12 RUE ARC… niort    
## 2 Mme Anabelle … 47 ave… Poit… mme an… MME AN… 47 avenue … 47 AVENUE … poitiers 
## 3 Mme Fatou Sla… 3 rue … Mars… mme fa… MME FA… 3 rue des … 3 RUE DES … marseille
## # ℹ 1 more variable: ville_maj <chr>

Tâche 2 : Je colle les éléments de la colonne adresse à chaque ville correspondante de la colonne ville avec la fonction paste().

data_textuelle_change_2 <- data_textuelle%>%mutate(adresse_complete = paste(adresse,str_to_upper(ville)))
data_textuelle_change_2[,c(4)] # J'affiche que la colonne avec les modifications
## # A tibble: 3 × 1
##   adresse_complete                   
##   <chr>                              
## 1 12 rue Archimède NIORT             
## 2 47 avenue de la Libération POITIERS
## 3 3 rue des Fleurs MARSEILLE

Remarque : La fonction mutate ne fonctionne que sur des vecteurs

Tâche 3 : J’apprends à utiliser l’argument sep qui permet de concaténer deux chaînes de caractères avec un séparateur que nous pouvons définir nous-mêmes.

# Séparateur : sep et collapse : délimite et colle 
data_textuelle_change_3 <- data_textuelle%>%mutate(adresse_complete_sep = paste(nom, adresse, str_to_upper(ville), sep ="|"))
data_textuelle_change_3[,c(4)] # Nous affichons que la colonne avec les modification
## # A tibble: 3 × 1
##   adresse_complete_sep                                   
##   <chr>                                                  
## 1 Mr Eric Legrand|12 rue Archimède|NIORT                 
## 2 Mme Anabelle Dupont|47 avenue de la Libération|POITIERS
## 3 Mme Fatou Slaoui|3 rue des Fleurs|MARSEILLE

Tâche 4 : J’organise l’adresse complète créée précédemment avec le délimiteur “|” et j’en fais une liste découpée suivant ce dernier, en utilisant la fonction str_split().

adresse_complete_spliter <- str_split(data_textuelle_change_3$adresse_complete_sep,pattern = "\\|")
adresse_complete_spliter
## [[1]]
## [1] "Mr Eric Legrand"  "12 rue Archimède" "NIORT"           
## 
## [[2]]
## [1] "Mme Anabelle Dupont"        "47 avenue de la Libération"
## [3] "POITIERS"                  
## 
## [[3]]
## [1] "Mme Fatou Slaoui" "3 rue des Fleurs" "MARSEILLE"

— PARTIE EN CONSTRUCTION —

Activité 4 : Extraire, Détecter, Remplacer et Modifier des motifs dans une chaîne de caractères

Tâche Bonus : Détection de motif (incomplet !)

  • Evaluer les probabilités d’apparition de of, Alice, was, to
#

Tâche 5 : Je crée dans la table de données textuelles un découpage du nom en genre, prénom et nom. (incomplet !)

#variable = c()
#decoupage <- separate(variable, into=c("genre", "prenom", "nom"))

Conseil : que les noms des variables soient parlants, des noms de variables explicites.

Activité 5 : Cartographie (Date : 13/02/2025)

Tâche 1 : ….

data_dechet <- read_csv("Dechets.csv")
## Rows: 1052 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (4): Domaine, waste_type, geometry, commune
## dbl (5): Identifiant, Deep, waste_number, X, Y
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Afficher les premières lignes du fichier importé
head(data_dechet)
## # A tibble: 6 × 9
##   Identifiant  Deep Domaine waste_type    waste_number       X        Y geometry
##         <dbl> <dbl> <chr>   <chr>                <dbl>   <dbl>    <dbl> <chr>   
## 1           1  5.26 public  vehicle scrap            1 524333. 8588954. c(52433…
## 2           2 -1.6  public  solid waste              4 524316. 8588991. c(52431…
## 3           3 -5.38 public  vehicle scrap            3 524307. 8589054. c(52430…
## 4           4  1.3  public  solid waste              1 524281. 8589068. c(52428…
## 5           5 -2.66 public  vehicle scrap            1 524213. 8589098. c(52421…
## 6           6  6.9  public  droppings                1 524050. 8589171. c(52404…
## # ℹ 1 more variable: commune <chr>
  • Nuage de points avec les coordonnées X,Y de la table Dechets (concernant Mayotte)
ggplot(data_dechet, aes(X,Y)) + geom_point()

  • Importation de ma clé stadiamap

Remarque : Stadia Maps est un service qui permet de montrer des cartes sur internet. C’est un peu comme un plan interactif que l’on peut explorer pour voir des endroits, des routes et des lieux différents.

  • Je récupère et représente un fonds de carte des USA obtenus entre les longitudes -125 et -67 et entre les latitudes 25 et 50.
us = c(left = -125, right = -67, bottom = 25.75, top = 49)
map = get_stadiamap(us, zoom = 5, maptype ="stamen_toner_lite") 
## ℹ © Stadia Maps © Stamen Design © OpenMapTiles © OpenStreetMap contributors.
ggmap(map)

- Pour Mayotte mon île !

# Coordonnes délimitant Mayotte
#left : latitude minimum ; bottom : longitude minimum
mayotte_bbox <- c(left = 45.0183, bottom = -13.0208, right = 45.2991, top = -12.6364)

# Obtenir la carte de Mayotte
map_mayotte <- get_stadiamap(bbox = mayotte_bbox, zoom = 12, maptype = "stamen_toner_lite")
## ℹ © Stadia Maps © Stamen Design © OpenMapTiles © OpenStreetMap contributors.
# Afficher la carte avec ggmap
ggmap(map_mayotte) + labs(title = "Carte de Mayotte")

  • Je récupère et représente un fonds de carte de l’Europe.
europe = c(left = -12, right = 30, bottom = 35, top = 63)
get_stadiamap(europe, zoom = 5,"stamen_toner_lite")%>%ggmap()
## ℹ © Stadia Maps © Stamen Design © OpenMapTiles © OpenStreetMap contributors.

  • Je récupere les coordonnées des déchets (concernant mayotte)
dechet_yt_points <- read_excel("points_noirs.xlsx", skip = 1 )
dechet_yt_points <- dechet_yt_points%>%mutate(x = as.numeric(x), y = as.numeric(y))

head(dechet_yt_points)
## # A tibble: 6 × 7
##   Identifiant     x     y `Z(HAE)` Domaine type_signa       nb_signa
##         <dbl> <dbl> <dbl> <chr>    <chr>   <chr>               <dbl>
## 1           1  45.2 -12.8 5.26     public  carcasse voiture        1
## 2           2  45.2 -12.8 -1.6     public  encombrants             4
## 3           3  45.2 -12.8 -5.38    public  carcasse voiture        3
## 4           4  45.2 -12.8 1.3      public  encombrants             1
## 5           5  45.2 -12.8 -2.66    public  carcasse voiture        1
## 6           6  45.2 -12.8 6.9      public  depot sauvage           1
ggmap(map_mayotte, base_layer=ggplot(dechet_yt_points, aes(x, y,color="red"))) + geom_point()

  • Avec Qmplot : il n’est pas nécessaire de superposer les points sur une carte. La carte avec les points est générée automatiquement à partir des données.
qmplot(x, y, data = dechet_yt_points, maptype = "stamen_toner_lite", color = I("blue"))
## ℹ Using `zoom = 12`
## ℹ © Stadia Maps © Stamen Design © OpenMapTiles © OpenStreetMap contributors.

Je crée une cartographie interactive avec Leaflet.

#library(sf)
#Data_sf =st_read(dsn =system.file("shape/nc.shp", package ="sf"), quiet = TRUE)

\[FIN\]