Introduction à R : les fondamentaux

Formation en R

Bienvenue au “Cours d’Introduction à R” !

  • Nous allons apprendre à utiliser le langage de programmation R !

  • En utilisant des données administratives familières aux administrations fiscales.

Quelques prérequis

❌ La formation ne nécessite aucune connaissance préalable en programmation statistique.

✅ Un ordinateur avec R et RStudio installés est requis pour compléter les exercices.

✅ Une connexion Internet est requise pour télécharger le matériel de formation.

Qu’est-ce que R ?

R est un langage de programmation avec de puissantes capacités statistiques et graphiques.

Pourquoi devrions-nous utiliser R ?

  1. R est très flexible et puissant—adaptable à presque n’importe quelle tâche (nettoyage de données, visualisation de données, économétrie, analyse de données spatiales, apprentissage automatique, web scraping, etc.)
  1. R est open source et gratuit - permettant à vous et à votre institution d’économiser de l’argent !
  1. R connaît une croissance rapide en popularité.

Source : PYPL Index, 2024
  1. R offre une excellente interface - RStudio.

Et qu’en est-il d’Excel ?

✅ Facile à utiliser.

❌ Seulement bon pour les petits jeux de données.

❌ Nous ne gardons pas trace de ce que nous faisons.

❌ Pas simple de combiner des données.

❌ Et la liste continue…

Et qu’en est-il de STATA ?

✅ Stata est largement utilisé en économie.

✅ Facile à apprendre.

❌ Seulement bon pour les petits jeux de données.

❌ Coûteux !

❌ Manque de flexibilité… vous détestez aussi keep, preserve, et restore ?

Commencer avec RStudio

Vous devriez voir ceci !

Si ce n’est pas le cas, assurez-vous d’avoir ouvert RStudio et non R !

Console

Commençons par écrire vos scripts R (code source) dans le panneau Source.

Vous pouvez utiliser la barre de menu ou Ctrl + Shift + N pour créer de nouveaux scripts R.

Les scripts nous aident à documenter et organiser les étapes que nous voulons réaliser.

Pour exécuter une commande, écrivez-la dans le panneau Source et appuyez sur Ctrl+Enter (Windows) pour l’exécuter dans la Console.

Le résultat apparaîtra dans le panneau Console (panneau inférieur gauche).

Le panneau Environment affiche tous les objets que vous avez créés pendant votre session.

Utiliser R comme une Calculatrice

Opérations Mathématiques de Base

Une simple addition :

99 + 1
[1] 100

Calculs plus complexes :

99 + 1 * 2
[1] 101

Suivant les règles mathématiques (ordre des opérations) :

(99 + 1) * 2
[1] 200

Plus d’Opérations Mathématiques

Soustraction, multiplication, division :

150 - 50
[1] 100
10 * 5
[1] 50
100 / 4
[1] 25

Puissances et racines carrées :

2^3       # 2 à la puissance 3
[1] 8
sqrt(16)  # Racine carrée
[1] 4

Notation scientifique :

2 / 100000   # Très petit nombre
[1] 2e-05
5e3          # 5000 en notation scientifique
[1] 5000

Stocker les Résultats : Objets

Au lieu de simplement calculer, nous pouvons sauvegarder les résultats pour les utiliser plus tard.

montant_tva = 50000

Maintenant nous pouvons utiliser montant_tva dans d’autres calculs :

montant_tva * 1.10  # Ajouter 10% de pénalité
[1] 55000

Nous pouvons créer plusieurs objets :

tva_base = 50000
taux_penalite = 0.10
tva_total = tva_base * (1 + taux_penalite)
tva_total
[1] 55000

Règles de Dénomination pour les Objets

  • Utiliser des lettres minuscules
  • Séparer les mots avec un trait de soulignement (_) - cela s’appelle snake_case
  • Faire des noms descriptifs mais pas trop longs
  • Ne pas utiliser d’espaces ni de caractères spéciaux

Bons noms :

montant_tva
id_entreprise
revenu_total_2024

Mauvais noms :

MontantTva         # Majuscules et minuscules mélangées
montant tva        # A un espace (causera une erreur !)
x1                 # Pas descriptif
nom_tres_long_qui_est_difficile_a_ecrire_et_lire

Commentaires : Expliquer Votre Code

Utilisez # pour ajouter des commentaires - R ignorera tout après #

# Ceci est un commentaire - R ignore cette ligne

# Calculer TVA avec pénalité
tva_base = 50000        # Montant de TVA en monnaie locale
penalite = tva_base * 0.05  # 5% de pénalité pour déclaration tardive
total = tva_base + penalite
total
[1] 52500

Astuce

Bonne pratique : Commentez votre code pour expliquer POURQUOI vous faites quelque chose, pas seulement CE QUE vous faites.

Comprendre les Fonctions

Qu’est-ce qu’une Fonction ?

Une fonction est un morceau de code réutilisable qui effectue une tâche spécifique.

Pensez aux fonctions comme des outils dans une boîte à outils :

  • mean() - calcule la moyenne
  • sum() - additionne toutes les valeurs
  • sqrt() - calcule la racine carrée
  • round() - arrondit les nombres

Syntaxe des fonctions :

nom_fonction(argument1, argument2, ...)

Utiliser les Fonctions : Exemples

# Racine carrée
sqrt(144)
[1] 12
# Arrondir un nombre
round(3.14159, digits = 2)
[1] 3.14
# Valeur absolue
abs(-15)
[1] 15
# Travailler avec plusieurs valeurs à la fois
montants_tva = c(50000, 75000, 90000, 45000, 82000)

# Calculer la moyenne
mean(montants_tva)
[1] 68400
# Calculer le total
sum(montants_tva)
[1] 342000

Arguments de Fonctions

Les fonctions peuvent avoir des arguments (entrées) qui contrôlent leur comportement.

# round() a deux arguments
round(3.14159)                    # Par défaut : 0 décimales
[1] 3
round(3.14159, digits = 2)        # 2 décimales
[1] 3.14
round(3.14159, digits = 4)        # 4 décimales
[1] 3.1416

Astuce

Utilisez ? pour obtenir de l’aide avec n’importe quelle fonction :

?round
?mean
?sum

Fonctions Courantes pour l’Analyse Fiscale

Fonctions statistiques :

paiements = c(50000, 75000, 90000, 45000, 82000)

mean(paiements)    # Moyenne
[1] 68400
median(paiements)  # Médiane
[1] 75000
max(paiements)     # Maximum
[1] 90000
min(paiements)     # Minimum
[1] 45000
sd(paiements)      # Écart-type
[1] 19882.15

Créer Vos Propres Fonctions

Vous pouvez créer vos propres fonctions !

# Fonction pour calculer TVA totale avec pénalité
calculer_tva_avec_penalite = function(montant_base, taux_penalite) {
  penalite = montant_base * taux_penalite
  total = montant_base + penalite
  return(total)
}

# Utiliser notre fonction
calculer_tva_avec_penalite(50000, 0.05)
[1] 52500
calculer_tva_avec_penalite(75000, 0.10)
[1] 82500

Types de Données dans R

Les Trois Types de Données Principaux

R travaille avec différents types de données :

1. Numérique - nombres (avec ou sans décimales)

montant_tva = 50000
taux_impot = 0.15

2. Caractère - texte (toujours entre guillemets)

nom_entreprise = "Acme Corporation"
id_fiscal = "TAX-12345"

3. Logique - vrai ou faux

declare_a_temps = TRUE
a_amende = FALSE

Vérifier les Types de Données

Utilisez class() pour vérifier le type d’un objet :

class(50000)
[1] "numeric"
class("TAX-12345")
[1] "character"
class(TRUE)
[1] "logical"

Pourquoi les types sont importants ?

# Ceci fonctionne (tous deux sont numériques)
100 + 50

# Ceci NE fonctionne PAS (on ne peut pas additionner du texte)
"100" + "50"  # Erreur !

Conversion de Types

Parfois vous devez convertir entre types :

# Convertir texte en nombre
montant_texte = "50000"
class(montant_texte)
[1] "character"
montant_nombre = as.numeric(montant_texte)
class(montant_nombre)
[1] "numeric"
montant_nombre + 1000  # Maintenant ça fonctionne !
[1] 51000
# Convertir nombre en texte
as.character(12345)
[1] "12345"
# Convertir en logique
as.logical(1)   # TRUE
[1] TRUE
as.logical(0)   # FALSE
[1] FALSE

Vecteurs : Séquences de Données

Qu’est-ce qu’un Vecteur ?

Un vecteur est une séquence de valeurs du même type.

Créer des vecteurs avec c() (combiner) :

# Vecteur de montants de TVA
montants_tva = c(50000, 75000, 90000, 45000, 82000)
montants_tva
[1] 50000 75000 90000 45000 82000
# Vecteur d'IDs d'entreprises
ids_entreprises = c("FIRM_001", "FIRM_002", "FIRM_003")
ids_entreprises
[1] "FIRM_001" "FIRM_002" "FIRM_003"
# Vecteur d'états de conformité
conformite = c(TRUE, TRUE, FALSE, TRUE, FALSE)
conformite
[1]  TRUE  TRUE FALSE  TRUE FALSE

Opérations avec Vecteurs

Arithmétique vectorielle - les opérations s’appliquent à chaque élément :

montants_tva = c(50000, 75000, 90000, 45000, 82000)

# Ajouter 10% de pénalité à tous
montants_tva * 1.10
[1] 55000 82500 99000 49500 90200
# Ajouter un montant fixe à tous
montants_tva + 5000
[1] 55000 80000 95000 50000 87000
# Diviser tous par 1000
montants_tva / 1000
[1] 50 75 90 45 82

Statistiques de Vecteurs

Appliquer des fonctions à des vecteurs complets :

montants_tva = c(50000, 75000, 90000, 45000, 82000)

mean(montants_tva)     # Moyenne
[1] 68400
sum(montants_tva)      # Total collecté
[1] 342000
max(montants_tva)      # Plus grand paiement
[1] 90000
min(montants_tva)      # Plus petit paiement
[1] 45000
length(montants_tva)   # Nombre d'entreprises
[1] 5

Fonctions Utiles pour Créer des Vecteurs

Séquences :

# Nombres de 1 à 10
1:10
 [1]  1  2  3  4  5  6  7  8  9 10
# Années
annees = 2020:2024
annees
[1] 2020 2021 2022 2023 2024

Répétition :

# Répéter une valeur
rep(0.15, times = 5)  # Taux d'imposition standard
[1] 0.15 0.15 0.15 0.15 0.15
# Répéter un motif
rep(c("T1", "T2", "T3", "T4"), times = 2)
[1] "T1" "T2" "T3" "T4" "T1" "T2" "T3" "T4"

Séquences Plus Complexes

# Séquence avec fonction seq()
seq(from = 0, to = 100, by = 10)
 [1]   0  10  20  30  40  50  60  70  80  90 100
# Longueur spécifique
seq(from = 0, to = 1, length.out = 5)
[1] 0.00 0.25 0.50 0.75 1.00
# Créer des IDs d'entreprises
paste0("FIRM_", 1:5)
[1] "FIRM_1" "FIRM_2" "FIRM_3" "FIRM_4" "FIRM_5"
# Avec séparateur
paste("Year", 2020:2024, sep = "_")
[1] "Year_2020" "Year_2021" "Year_2022" "Year_2023" "Year_2024"

Indexation : Accéder aux Éléments du Vecteur

Utilisez [] pour accéder à des éléments spécifiques :

montants_tva = c(50000, 75000, 90000, 45000, 82000)

# Premier élément
montants_tva[1]
[1] 50000
# Troisième élément
montants_tva[3]
[1] 90000
# Dernier élément
montants_tva[length(montants_tva)]
[1] 82000

Indexation Multiple

montants_tva = c(50000, 75000, 90000, 45000, 82000)

# Plusieurs éléments
montants_tva[c(1, 3, 5)]
[1] 50000 90000 82000
# Plage d'éléments
montants_tva[2:4]
[1] 75000 90000 45000
# Tous sauf certains
montants_tva[-1]           # Exclure le premier
[1] 75000 90000 45000 82000
montants_tva[c(-1, -5)]    # Exclure premier et cinquième
[1] 75000 90000 45000

Indexation Logique

Trouver des éléments qui remplissent une condition :

tva = c(50000, 75000, 90000, 45000, 82000)

# Quelles entreprises ont payé plus de 60 000 ?
tva > 60000
[1] FALSE  TRUE  TRUE FALSE  TRUE

Utiliser des vecteurs logiques pour filtrer :

# Obtenir seulement les montants supérieurs à 60 000
tva_eleve = tva[tva > 60000]
tva_eleve
[1] 75000 90000 82000

Conditions multiples :

# TVA entre 50 000 et 80 000
tva_modere = tva[tva >= 50000 & tva <= 80000]
tva_modere
[1] 50000 75000

Valeurs Manquantes (NA)

Comprendre les Données Manquantes

Dans les données réelles d’administration fiscale, les valeurs manquantes sont courantes :

  • Entreprises qui n’ont pas encore déclaré
  • Registres incomplets
  • Erreurs de saisie de données

Dans R, les valeurs manquantes sont représentées par NA (Non Disponible)

# Certaines entreprises n'ont pas encore déclaré de TVA
tva_declaree = c(50000, 75000, NA, 90000, 45000, NA, 82000)
tva_declaree
[1] 50000 75000    NA 90000 45000    NA 82000

Le Problème avec NA

Les opérations mathématiques avec NA retournent NA !

# Essayer de calculer la moyenne
mean(tva_declaree)
[1] NA

Avertissement

Tout calcul impliquant NA retournera NA à moins de le gérer explicitement !

Gérer NA : L’Argument na.rm

La plupart des fonctions statistiques ont un argument na.rm (NA remove) :

# Calculer la moyenne, en supprimant les valeurs NA
mean(tva_declaree, na.rm = TRUE)
[1] 68400
# D'autres fonctions fonctionnent de la même manière
sum(tva_declaree, na.rm = TRUE)
[1] 342000
max(tva_declaree, na.rm = TRUE)
[1] 90000

Astuce

Vérifiez toujours vos données pour les valeurs manquantes et décidez comment les gérer !

Détecter les Valeurs Manquantes

# Vérifier quelles valeurs manquent
is.na(tva_declaree)
[1] FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE
# Compter combien manquent
sum(is.na(tva_declaree))
[1] 2
# Quelles positions ont des valeurs manquantes ?
which(is.na(tva_declaree))
[1] 3 6

Travailler avec des Cas Complets

# Obtenir seulement les valeurs non manquantes
tva_complete = tva_declaree[!is.na(tva_declaree)]
tva_complete
[1] 50000 75000 90000 45000 82000

Exemple pratique : Taux de conformité

ids_entreprises = paste0("FIRM_", 1:7)

total_entreprises = length(tva_declaree)
entreprises_declarees = sum(!is.na(tva_declaree))
taux_conformite = (entreprises_declarees / total_entreprises) * 100

cat("Taux de Conformité :", round(taux_conformite, 1), "%\n")
Taux de Conformité : 71.4 %
# Quelles entreprises n'ont pas déclaré ?
non_conformes = ids_entreprises[is.na(tva_declaree)]
non_conformes
[1] "FIRM_3" "FIRM_6"

Exercice 1 : Fondamentaux de R

10:00

Partie 1 : Objets et Calculs

  1. Créez un objet montant_base avec la valeur 125000
  2. Créez un objet taux_impot avec la valeur 0.15 (15%)
  3. Calculez le montant de l’impôt et sauvegardez-le dans impot_du
  4. Ajoutez une pénalité de 5% à impot_du et sauvegardez dans paiement_total

Partie 2 : Utiliser les Fonctions

  1. Arrondissez paiement_total à l’entier le plus proche
  2. Calculez la racine carrée de montant_base
  3. Utilisez la fonction abs() pour obtenir la valeur absolue de -5000

Exercice 1 : Solutions

# Partie 1 : Objets et Calculs
montant_base = 125000
taux_impot = 0.15
impot_du = montant_base * taux_impot
paiement_total = impot_du * 1.05

# Partie 2 : Utiliser les Fonctions
round(paiement_total)
sqrt(montant_base)
abs(-5000)

Exercice 2 : Fondamentaux de R

10:00

Partie 1 : Créer des Vecteurs

  1. Créez ids_entreprises : “FIRM_001” à “FIRM_006” (utilisez paste0() et 1:6)
  2. Créez montants_tva : 50000, 75000, NA, 90000, 45000, NA
  3. Créez annees : 2020 à 2025 en utilisant :
  4. Créez taux_standard : répétez 0.15 six fois en utilisant rep()

Partie 2 : Opérations avec Vecteurs

  1. Calculez la TVA moyenne (gérez les NAs !)
  2. Calculez la TVA totale collectée
  3. Multipliez tous les montants_tva par 1.05 pour ajouter 5% de pénalité

Exercice 2 : Fondamentaux de R

Partie 3 : Indexation

  1. Obtenez le montant de TVA de la troisième entreprise
  2. Obtenez les montants de TVA des entreprises 2, 4 et 5
  3. Trouvez tous les montants de TVA supérieurs à 60000

Partie 4 : Données Manquantes

  1. Combien d’entreprises n’ont pas déclaré de TVA ?
  2. Créez un vecteur logique montrant quelles entreprises ont des données manquantes
  3. Quels IDs d’entreprise correspondent aux données de TVA manquantes ?

Solutions : Exercice 2

# Partie 1 : Créer des Vecteurs
ids_entreprises = paste0("FIRM_", sprintf("%03d", 1:6))
montants_tva = c(50000, 75000, NA, 90000, 45000, NA)
annees = 2020:2025
taux_standard = rep(0.15, times = 6)

# Partie 2 : Opérations avec Vecteurs
mean(montants_tva, na.rm = TRUE)
sum(montants_tva, na.rm = TRUE)
montants_tva * 1.05

# Partie 3 : Indexation
montants_tva[3]
montants_tva[c(2, 4, 5)]
montants_tva[montants_tva > 60000 & !is.na(montants_tva)]

# Partie 4 : Données Manquantes
sum(is.na(montants_tva))
is.na(montants_tva)
ids_entreprises[is.na(montants_tva)]

Étendre R avec les Paquets

Que Sont les Paquets ?

Les paquets R sont des collections de fonctions créées par la communauté.

Pensez à R de base comme un smartphone, et aux paquets comme des applications que vous installez !

Deux étapes pour utiliser un paquet :

  1. L’installer (une fois) : install.packages("nomPaquet")
  2. Le charger (chaque session) : library(nomPaquet)

Installer et Charger des Paquets

# Installer un paquet (seulement nécessaire une fois)
install.packages("ggplot2")

# Charger le paquet (nécessaire chaque fois que vous démarrez R)
library(ggplot2)

# Maintenant vous pouvez utiliser les fonctions de ggplot2 !

Note

Pensez-y ainsi :

  • Installer = Acheter un livre et le mettre sur votre étagère
  • Charger = Sortir le livre de l’étagère pour le lire

Paquets Populaires pour l’Analyse Fiscale

Quelques paquets que vous utiliserez dans ce cours :

dplyr - Manipulation et transformation de données

ggplot2 - Création de visualisations professionnelles

readr / readxl - Lecture de fichiers CSV et Excel

data.table - Opérations rapides sur de grands jeux de données

lubridate - Travail avec les dates

Astuce

Nous apprendrons ces paquets dans les prochains modules !

Résumé

Ce Que Nous Avons Appris Aujourd’hui

  • Interface RStudio - où écrire et exécuter du code
  • R comme calculatrice - opérations arithmétiques de base
  • Objets - stocker des valeurs pour utilisation ultérieure
  • Fonctions - outils réutilisables qui effectuent des tâches
  • Types de données - numérique, caractère, logique
  • Vecteurs - séquences de données
  • Opérations vectorielles - arithmétique et filtrage
  • Valeurs manquantes - gérer des données incomplètes avec NA
  • Paquets - étendre les capacités de R

Concepts Clés à Retenir

Sauvegardez toujours votre travail dans des scripts - pas seulement dans la console !

Les fonctions sont vos amies - utilisez help() quand vous n’êtes pas sûr

Les vecteurs sont partout - ils sont la base des données dans R

Gérez les NAs explicitement - utilisez na.rm = TRUE dans les calculs

Commentez votre code - votre futur vous vous en remerciera !

Merci !

Questions ?

Note

Prochaines étapes :

  • Pratiquez avec les exercices fournis
  • Explorez les fonctions d’aide (?nom_fonction)
  • Préparez-vous pour le prochain module sur l’importation de données !