SlideShare une entreprise Scribd logo
Introduction
au langage R
Yi Yang
Qu’est-ce que c’est R ?
&
Pourquoi on veut
l’apprendre ?
1
Un peu d’histoire
2
Entrons dans le
monde technique
3
Son atout :
Extensibilité
4
Comparaison avec
Python
5
Qu’est-ce que c’est R ?
• Langage de programmation pour les
données
• Manipulation, analyse, représentation
graphique
• Très implanté dans la communauté
scientifique et académique
• Langage interprété => des scripts
Caractéristiques de R
• Pas de typage ni de déclaration
obligatoire de variable
• Tout est basé sur la notion de vecteur,
ce qui simplifie les calculs
mathématiques
• Programmes courts, en général
quelques lignes de code
• Temps de développement très court
Un peu
d’histoire…
Supporté par
une équipe de
développeurs
au sein du R
Project
Au début des
années 1990
proposé par
Ross Ihaka et
Robert
Gentleman
Origine : S
développé chez
Bell
Laboratories
• Affectation des variables :
• Affichage de la valeur de la variable :
• Ou, directement avec :
• Comme il n’y a pas de typage :
• Trois types de base de variable : numeric (les chiffres), character (les
caractères et les chaînes de caractères), logical (True et False)
Maintenant, un peu de technique…
Et il y a toujours des exceptions !
• NULL
• Il est de type NULL, donc n’appartient pas à aucun des trois types de base
• Sa longueur est 0
• Toutefois différent d’un objet vide :
• un objet de longueur 0 est un contenant vide :
• NULL est « pas de contenant » :
• La fonction is.null() teste si un objet est NULL ou non :
• Par défaut NA est de type logical, mais il ne peut être considéré ni
comme TRUE, ni comme FALSE
• Toute opération impliquant une donnée NA a comme résultat NA
• Sa valeur n’est égale à aucune autre, pas même elle-même :
• Par conséquent, pour tester si les éléments d’un objet sont NA ou
non il faut utiliser la fonction is.na() :
Valeurs manquantes ou indéterminées : NA
Vecteur, matrice et tableau
• Dans R, tout est basé sur la notion vecteur
• Vecteur unidimensionnel : vector
• Et si on déclare un vecteur hétérogène, R va trouver un type pouvant rendre les
types des éléments uniformes
Vecteur, matrice et tableau
• Dans R, tout est basé sur la notion vecteur
• Vecteur bi-dimensionnelle : matrix
• On peut définir le contenu (les données), le nombre de lignes, le nombre de colonnes,
l’ordre de remplissage, et le nom de chaque dimension lors de la création de la matrice
Vecteur, matrice et tableau
• Dans R, tout est basé sur la notion vecteur
• Vecteur pluridimensionnelle : array
Dataframe
• La plupart des cas de dimension 2
• Le plus utilisé pour stocker les données
• les éléments de chaque colonne peuvent être de types
différents
Liste
• Le mode de stockage le plus général et polyvalent
• Elle peut contenir n’importe quoi (un fourre-tout)
Structure de contrôle
• Instruction conditionnelle
• If
• Ifelse
• switch
• Boucle
• For
• While
• repeat
Fonction
Il existe pas mal de fonctions mathématiques et statistiques dans le
package {base}, mais on peut toujours définir sa propre fonction
La syntaxe de définition est :
nomFonction <- function(arguments) expression
On peut également définir la valeur défaut pour chaque argument, si
l’utilisateur ne précise pas la valeur de l’argument lors de l’appel de
fonction, la valeur défaut s’applique
Une fonction peut servir une autre fonction en tant qu’un argument
Débogage des fonctions : print()
On peut même redéfinir toutes les fonctions existantes !
Fonction Famille
apply()
• Les boucles dans R ne sont pas efficaces, il faut
utiliser les fonctions de la famille apply() à la place
• Les fonctions de cette famille consistent à appliquer
une fonction déterminée à chaque élément des
contenants de données, que ce soit un vecteur, une
matrice, un tableau, une liste ou un dataframe
• apply(X, MARGIN, FUN, ...)
• lapply(X, FUN, ...)
sapply(X, FUN, ...)
• mapply(FUN, ...)
Son atout : extensibilité
• Un package R est un
ensemble cohérent de
fonctions, de jeux de
données et de
documentation
• Site officiel de l’installation
des packages :
Comprehensive R Archive
Network (CRAN,
https://cran.r-project.org)
• Installation de packages peut
s’effectuer dans le code =>
portabilité des scripts
Manipulation de
données : tidyr & dplyr
• La plupart du temps des data analysts ou des data
scientists est consacrée au nettoyage de données
• Les packages tidyr et dplyr consistent à manipuler
les données et les rendre propres et faciles à
analyser
• Un grand avantage de ces packages : l’opération
%>% qui constitue un pipeline de traitement
Visualisation des
données : ggplot2
• Le package ggplot a été créé en 2005, avant son
disparition en 2008, la deuxième version ggplot2 a
été mise en ligne en 2007
• Un package permettant de construire les
visualisations des données couche par couche,
d’une façon très personnalisée
Création de
Web App
dynamique :
shiny
• Un package créant des applications web sans
avoir à toucher au HTML, ni au CSS (pour des
bases)
• Divise l’application en deux parties : UI
(interface utilisateur) & serveur (contrôlleur)
• Les thèmes variés applicables pour construire
son propre tableau de bord
• La galerie pour s’inspirer de cas d’utilisation :
http://shiny.rstudio.com/gallery/
Et bien sûr
• Il existe un tas de packages pour les utilités différentes, comme
machine learning, connecteur des données, digestion des
programmes des autres langages etc.
• La possibilité est infinie, à exploiter avec plaisir
Comparaison
avec Python
Comparaison
entre R et
Python
• Points communs :
• Gratuit et Open-Source
• Né au début de 90s
• Langage interprété
• Fréquemment utilisé dans le domaine de données
• Différence ?
Différence
entre R et
Python
R PYTHON
Surtout pour les analyses statistiques Langage de programmation généraliste
Domaine de recherche &
académique
Domaine industriel
Similaire aux autres langages de
traitement des données (ex. Matlab)
Similaire (voire plus intuitif) par rapport aux
autres langages de développement
Plus fort à la manipulation & la
visualisation des données
Plus fort à la collection des données & la
construction du modèle
Période de programmation plutôt
courte
Période de programmation plutôt longue
Pipeline de traitement de données
• Deep learning
(Python) VS
Statistical learning
(R)
• R (plus de packages
disponibles,
intégré dans des
services de
visualisation)
• R (supporté par le
core, les packages
tierces sont encore
plus puissants)
• Python (plus de
possibilités, plus de
packages, plus de
source de
données)
Collection Exploration
ModélisationVisualisation
Question ?

Contenu connexe

Tendances

Introduction au package "plyr"
Introduction au package "plyr"Introduction au package "plyr"
Introduction au package "plyr"
parisraddicts
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
MICHRAFY MUSTAFA
 
Programming language python 2021
Programming language python 2021Programming language python 2021
Programming language python 2021
Dalila Chouaya
 
Scala : programmation fonctionnelle
Scala : programmation fonctionnelleScala : programmation fonctionnelle
Scala : programmation fonctionnelle
MICHRAFY MUSTAFA
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentation
rajiasellami
 
Matlab formation Sound and image Processing
Matlab formation Sound and image ProcessingMatlab formation Sound and image Processing
Matlab formation Sound and image Processing
Kais Baccour
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
James RAVAILLE
 
Mat lab1
Mat lab1Mat lab1
Mat lab1fouadDD
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
Alexis Seigneurin
 
Spark dataframe
Spark dataframeSpark dataframe
Spark dataframe
Modern Data Stack France
 
Structures internes des données sur disque, Mai 2016, Loxodata
Structures internes des données sur disque, Mai 2016, LoxodataStructures internes des données sur disque, Mai 2016, Loxodata
Structures internes des données sur disque, Mai 2016, Loxodata
slardiere
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
MICHRAFY MUSTAFA
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
ABDESSELAM ARROU
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
Laurent BUNIET
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
Haytam EL YOUSSFI
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)
Alexis Seigneurin
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
ECAM Brussels Engineering School
 
ALF 8 - Generation de code
ALF 8 - Generation de codeALF 8 - Generation de code
ALF 8 - Generation de code
Alexandru Radovici
 
mis
mismis
misISIG
 

Tendances (20)

Introduction au package "plyr"
Introduction au package "plyr"Introduction au package "plyr"
Introduction au package "plyr"
 
Spark RDD : Transformations & Actions
Spark RDD : Transformations & ActionsSpark RDD : Transformations & Actions
Spark RDD : Transformations & Actions
 
Programming language python 2021
Programming language python 2021Programming language python 2021
Programming language python 2021
 
Scala : programmation fonctionnelle
Scala : programmation fonctionnelleScala : programmation fonctionnelle
Scala : programmation fonctionnelle
 
P8 03 presentation
P8 03 presentationP8 03 presentation
P8 03 presentation
 
Matlab formation Sound and image Processing
Matlab formation Sound and image ProcessingMatlab formation Sound and image Processing
Matlab formation Sound and image Processing
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
Mat lab1
Mat lab1Mat lab1
Mat lab1
 
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclairSpark, ou comment traiter des données à la vitesse de l'éclair
Spark, ou comment traiter des données à la vitesse de l'éclair
 
Spark dataframe
Spark dataframeSpark dataframe
Spark dataframe
 
Structures internes des données sur disque, Mai 2016, Loxodata
Structures internes des données sur disque, Mai 2016, LoxodataStructures internes des données sur disque, Mai 2016, Loxodata
Structures internes des données sur disque, Mai 2016, Loxodata
 
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...Interface fonctionnelle, Lambda expression, méthode par défaut,  référence de...
Interface fonctionnelle, Lambda expression, méthode par défaut, référence de...
 
Les listes en Python
Les listes en PythonLes listes en Python
Les listes en Python
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Python For Data Science - French Course
Python For Data Science - French CoursePython For Data Science - French Course
Python For Data Science - French Course
 
Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)Spark - Alexis Seigneurin (Français)
Spark - Alexis Seigneurin (Français)
 
Arbre et algorithme de recherche
Arbre et algorithme de rechercheArbre et algorithme de recherche
Arbre et algorithme de recherche
 
ALF 8 - Generation de code
ALF 8 - Generation de codeALF 8 - Generation de code
ALF 8 - Generation de code
 
5 sw
5 sw5 sw
5 sw
 
mis
mismis
mis
 

Similaire à Avec le langage R, prenez de la hauteur dans l’analyse de vos données !

Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
OuailChoukhairi
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptx
anashoummas
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptx
ssusera0d0e81
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)mahbouba
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
AboubacarDiarra10
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
SOAT
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
MICHRAFY MUSTAFA
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelle
Association Agile Nantes
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
Sylvain Abélard
 
GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
Sylvain Abélard
 
C#
C#C#
R-Lab-1-ppt.pdf
R-Lab-1-ppt.pdfR-Lab-1-ppt.pdf
R-Lab-1-ppt.pdf
AbdelkrimBouasria
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
Introduction à la programmation fonctionnelle
Introduction à la programmation fonctionnelle Introduction à la programmation fonctionnelle
Introduction à la programmation fonctionnelle
Marine Karam
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! frameworkHoracio Gonzalez
 
Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"
parisraddicts
 
Asd
AsdAsd
Ktab asd
Ktab asdKtab asd
Ktab asd
jemaa samir
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
LuneSabsPericolo1
 

Similaire à Avec le langage R, prenez de la hauteur dans l’analyse de vos données ! (20)

Data Mining (Partie 2).pdf
Data Mining (Partie 2).pdfData Mining (Partie 2).pdf
Data Mining (Partie 2).pdf
 
Analyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptxAnalyse_desDonnées_sousR.pptx
Analyse_desDonnées_sousR.pptx
 
Présentation Logiciel R.pptx
Présentation Logiciel R.pptxPrésentation Logiciel R.pptx
Présentation Logiciel R.pptx
 
Chapitre 1 (algorithme)
Chapitre 1 (algorithme)Chapitre 1 (algorithme)
Chapitre 1 (algorithme)
 
Langage de Programmation.pdf
Langage de Programmation.pdfLangage de Programmation.pdf
Langage de Programmation.pdf
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelle
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
 
GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
 
C#
C#C#
C#
 
R-Lab-1-ppt.pdf
R-Lab-1-ppt.pdfR-Lab-1-ppt.pdf
R-Lab-1-ppt.pdf
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
Introduction à la programmation fonctionnelle
Introduction à la programmation fonctionnelle Introduction à la programmation fonctionnelle
Introduction à la programmation fonctionnelle
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Enib   cours c.a.i. web - séance #5 : scala play! frameworkEnib   cours c.a.i. web - séance #5 : scala play! framework
Enib cours c.a.i. web - séance #5 : scala play! framework
 
R versur Python
R versur PythonR versur Python
R versur Python
 
Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"Gardez vos projets R organisés avec le package "project"
Gardez vos projets R organisés avec le package "project"
 
Asd
AsdAsd
Asd
 
Ktab asd
Ktab asdKtab asd
Ktab asd
 
COURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptxCOURS C++ [Enregistrement automatique]Complet (1).pptx
COURS C++ [Enregistrement automatique]Complet (1).pptx
 

Dernier

Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
La Fabrique de l'industrie
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Institut de l'Elevage - Idele
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
contact Elabe
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
contact Elabe
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
Institut de l'Elevage - Idele
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
contact Elabe
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
contact Elabe
 
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdfBarometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Paperjam_redaction
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
contact Elabe
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
contact Elabe
 

Dernier (10)

Productivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointementProductivité et politique industrielles: deux défis à relever conjointement
Productivité et politique industrielles: deux défis à relever conjointement
 
Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?Webinaire Qui sont les jeunes installés avec un bac +5 ?
Webinaire Qui sont les jeunes installés avec un bac +5 ?
 
Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024Actualisation estimation élections européennes 2024
Actualisation estimation élections européennes 2024
 
Les Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vagueLes Français et les élections européennes - 9ème vague
Les Français et les élections européennes - 9ème vague
 
Webinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptxWebinaire_les aides aux investissements.pptx
Webinaire_les aides aux investissements.pptx
 
Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024Deuxième actualisation estimation élections européennes 2024
Deuxième actualisation estimation élections européennes 2024
 
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024Estimations ELABE BFMTV ABSTENTION élections européennes 2024
Estimations ELABE BFMTV ABSTENTION élections européennes 2024
 
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdfBarometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
Barometre_de_l_Economie_S1_2024_-_BAT__1_.pdf
 
Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024Comprendre le vote aux élections européennes du 9 juin 2024
Comprendre le vote aux élections européennes du 9 juin 2024
 
Estimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABEEstimation élections européennes 2024 ELABE
Estimation élections européennes 2024 ELABE
 

Avec le langage R, prenez de la hauteur dans l’analyse de vos données !

  • 2. Qu’est-ce que c’est R ? & Pourquoi on veut l’apprendre ? 1 Un peu d’histoire 2 Entrons dans le monde technique 3 Son atout : Extensibilité 4 Comparaison avec Python 5
  • 3. Qu’est-ce que c’est R ? • Langage de programmation pour les données • Manipulation, analyse, représentation graphique • Très implanté dans la communauté scientifique et académique • Langage interprété => des scripts
  • 4. Caractéristiques de R • Pas de typage ni de déclaration obligatoire de variable • Tout est basé sur la notion de vecteur, ce qui simplifie les calculs mathématiques • Programmes courts, en général quelques lignes de code • Temps de développement très court
  • 5.
  • 6. Un peu d’histoire… Supporté par une équipe de développeurs au sein du R Project Au début des années 1990 proposé par Ross Ihaka et Robert Gentleman Origine : S développé chez Bell Laboratories
  • 7. • Affectation des variables : • Affichage de la valeur de la variable : • Ou, directement avec : • Comme il n’y a pas de typage : • Trois types de base de variable : numeric (les chiffres), character (les caractères et les chaînes de caractères), logical (True et False) Maintenant, un peu de technique…
  • 8. Et il y a toujours des exceptions ! • NULL • Il est de type NULL, donc n’appartient pas à aucun des trois types de base • Sa longueur est 0 • Toutefois différent d’un objet vide : • un objet de longueur 0 est un contenant vide : • NULL est « pas de contenant » : • La fonction is.null() teste si un objet est NULL ou non :
  • 9. • Par défaut NA est de type logical, mais il ne peut être considéré ni comme TRUE, ni comme FALSE • Toute opération impliquant une donnée NA a comme résultat NA • Sa valeur n’est égale à aucune autre, pas même elle-même : • Par conséquent, pour tester si les éléments d’un objet sont NA ou non il faut utiliser la fonction is.na() : Valeurs manquantes ou indéterminées : NA
  • 10. Vecteur, matrice et tableau • Dans R, tout est basé sur la notion vecteur • Vecteur unidimensionnel : vector • Et si on déclare un vecteur hétérogène, R va trouver un type pouvant rendre les types des éléments uniformes
  • 11. Vecteur, matrice et tableau • Dans R, tout est basé sur la notion vecteur • Vecteur bi-dimensionnelle : matrix • On peut définir le contenu (les données), le nombre de lignes, le nombre de colonnes, l’ordre de remplissage, et le nom de chaque dimension lors de la création de la matrice
  • 12. Vecteur, matrice et tableau • Dans R, tout est basé sur la notion vecteur • Vecteur pluridimensionnelle : array
  • 13. Dataframe • La plupart des cas de dimension 2 • Le plus utilisé pour stocker les données • les éléments de chaque colonne peuvent être de types différents
  • 14. Liste • Le mode de stockage le plus général et polyvalent • Elle peut contenir n’importe quoi (un fourre-tout)
  • 15. Structure de contrôle • Instruction conditionnelle • If • Ifelse • switch • Boucle • For • While • repeat
  • 16. Fonction Il existe pas mal de fonctions mathématiques et statistiques dans le package {base}, mais on peut toujours définir sa propre fonction La syntaxe de définition est : nomFonction <- function(arguments) expression On peut également définir la valeur défaut pour chaque argument, si l’utilisateur ne précise pas la valeur de l’argument lors de l’appel de fonction, la valeur défaut s’applique Une fonction peut servir une autre fonction en tant qu’un argument Débogage des fonctions : print() On peut même redéfinir toutes les fonctions existantes !
  • 17. Fonction Famille apply() • Les boucles dans R ne sont pas efficaces, il faut utiliser les fonctions de la famille apply() à la place • Les fonctions de cette famille consistent à appliquer une fonction déterminée à chaque élément des contenants de données, que ce soit un vecteur, une matrice, un tableau, une liste ou un dataframe • apply(X, MARGIN, FUN, ...) • lapply(X, FUN, ...) sapply(X, FUN, ...) • mapply(FUN, ...)
  • 18. Son atout : extensibilité • Un package R est un ensemble cohérent de fonctions, de jeux de données et de documentation • Site officiel de l’installation des packages : Comprehensive R Archive Network (CRAN, https://cran.r-project.org) • Installation de packages peut s’effectuer dans le code => portabilité des scripts
  • 19. Manipulation de données : tidyr & dplyr • La plupart du temps des data analysts ou des data scientists est consacrée au nettoyage de données • Les packages tidyr et dplyr consistent à manipuler les données et les rendre propres et faciles à analyser • Un grand avantage de ces packages : l’opération %>% qui constitue un pipeline de traitement
  • 20. Visualisation des données : ggplot2 • Le package ggplot a été créé en 2005, avant son disparition en 2008, la deuxième version ggplot2 a été mise en ligne en 2007 • Un package permettant de construire les visualisations des données couche par couche, d’une façon très personnalisée
  • 21. Création de Web App dynamique : shiny • Un package créant des applications web sans avoir à toucher au HTML, ni au CSS (pour des bases) • Divise l’application en deux parties : UI (interface utilisateur) & serveur (contrôlleur) • Les thèmes variés applicables pour construire son propre tableau de bord • La galerie pour s’inspirer de cas d’utilisation : http://shiny.rstudio.com/gallery/
  • 22. Et bien sûr • Il existe un tas de packages pour les utilités différentes, comme machine learning, connecteur des données, digestion des programmes des autres langages etc. • La possibilité est infinie, à exploiter avec plaisir
  • 24. Comparaison entre R et Python • Points communs : • Gratuit et Open-Source • Né au début de 90s • Langage interprété • Fréquemment utilisé dans le domaine de données • Différence ?
  • 25. Différence entre R et Python R PYTHON Surtout pour les analyses statistiques Langage de programmation généraliste Domaine de recherche & académique Domaine industriel Similaire aux autres langages de traitement des données (ex. Matlab) Similaire (voire plus intuitif) par rapport aux autres langages de développement Plus fort à la manipulation & la visualisation des données Plus fort à la collection des données & la construction du modèle Période de programmation plutôt courte Période de programmation plutôt longue
  • 26.
  • 27. Pipeline de traitement de données • Deep learning (Python) VS Statistical learning (R) • R (plus de packages disponibles, intégré dans des services de visualisation) • R (supporté par le core, les packages tierces sont encore plus puissants) • Python (plus de possibilités, plus de packages, plus de source de données) Collection Exploration ModélisationVisualisation