Vous êtes sur la page 1sur 22

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/371780904

Python vs. R pour Data Scientists : Une introduction

Technical Report · June 2023

CITATIONS READS

0 314

1 author:

Gradi Kamingu
University of Kinshasa
14 PUBLICATIONS 5 CITATIONS

SEE PROFILE

All content following this page was uploaded by Gradi Kamingu on 22 June 2023.

The user has requested enhancement of the downloaded file.


Série Optimall Python vs. R pour Data Scientists (Français)
Vol. 001, Num. 001

Python vs. R pour Data Scientists : Une introduction


Gradi L. Kamingu∗
2 juin 2023

Résumé
Ce papier compare les langages de programmation les plus couramment utilisés en
Data Science, notamment Python et R, en expliquant les critères de comparaison tels que
leurs objectifs, leurs communautés d’utilisateurs, leurs écosystèmes, leurs applications,
leurs courbes d’apprentissage, leurs rapidités d’exécution et leur importance dans le déve-
loppement d’applications web ou d’apprentissage automatique. Il commence par présenter
les notions de programmation informatique, en particulier les langages de programmation,
puis présente ces langages tout en introduisant leurs environnements de développement.
Mots clés : Langage Python, Langage R, Data Science, Programmation multiparadigme.


Chercheur au Laboratoire d’Optimisation et Apprentissage Automatique, RD Congo.
E-mail : g.kamingu@unikin.ac.cd.
1 Introduction
Les données jouent un rôle important dans le fonctionnement des entreprises et la compréhension
de ces données est importante pour la prise de décision à tous les niveaux. Pour profiter de cette
intelligence cachée dans la foule des données, la Data Science est utilisée. La Data Science peut être
décrite comme une science, un paradigme de recherche, une méthode de recherche, une discipline, un
flux de travail ou même une profession (Mike and Hazzan (2023)), qui utilise des statistiques, des
calculs scientifiques, des méthodes scientifiques, des processus, des algorithmes et des systèmes pour
extraire ou extrapoler connaissances et idées à partir de données, qu’elles soient structurées ou non
(Dhar (2013)). Il s’agit d’un concept qui unifie les statistiques, l’analyse des données, l’informatique et
leurs méthodes associées pour comprendre et analyser les phénomènes réels avec les données (Hayashi
(1998)). Ainsi, en tant que Data Scientist, il est important d’être à la fois un bon développeur infor-
matique et un bon analyste de données (Jakobowicz (2018)).

Ce qui fait que boîte à outils d’un Data Scientist contient des outils d’infrastructure qui collectent,
stockent et préparent les données, quel que soit leur format (structuré, semi-structuré ou non struc-
turé) ou leur source. Ensuite, il y a des outils d’analyse et de visualisation qui rendent les données
intelligibles et exploitables. Parmi ces outils, certains sont des logiciels qui permettent de faire de
l’analyse, tandis que d’autres sont des langages de programmation, dont les plus utilisés sont Python
et R. R et Python sont des langages indispensables pour un Data Scientist. De plus, la concurrence
entre les deux langages conduit à une amélioration constante de leurs fonctionnalités pour le traite-
ment des données (Jakobowicz (2018)).

Le reste de papier se structure de la manière suivante. Nous procédons à la présentation de la


notion de programmation informatique dans la section 2, puis présentons le langage Python dans la
section 3, et le langage R dans la section 4. Enfin, nous discutons des éléments de comparaison de ces
deux langages dans la section 5 avant de conclure.

2 Notions de programmation informatique


2.1 Programme informatique
Pour que les instructions soient comprises par l’ordinateur, il doivent être implémentées dans un
langage de programmation. Ceci produit un programme informatique ou simplement programme. L’en-
semble des activités qui permettent l’écriture de programmes informatiques est appelé programmation
informatique ou plus simplement programmation. Le composant de l’ordinateur qui traite et exécute
les instructions du programme est le processeur. Les instructions composant un programme sous une
forme lisible telle qu’écrite dans un langage de programmation sont appelées code source.

Définition 2.1 (Langage de programmation). Un langage de programmation est un système de symboles


permettant d’écrire des programmes informatiques.

Un langage de programmation comporte l’alphabet et des règles syntaxiques, auxquels on associe


des règles sémantiques (Gabbrielli and Martini (2010)).

L’alphabet est un ensemble de symboles appelés lettres ou lexèmes. Ces lettres peuvent être des
lettres de A à Z (de a à z), des chiffres (de 0 à 9), des symboles d’opérations mathématiques ou
logiques. Cet alphabet est basé sur des standards communs comme ASCII ou Unicode pour la plupart
des langages de programmation.

2
A partir des lettres, on peut construire le vocabulaire représentant l’ensemble des instructions. Par
abus de langage, on parle parfois de mot-clé.

Les règles syntaxiques définissent comment les lexèmes se combinent correctement pour former des
énoncés ou ce que nous appellerons des termes plus complexes du langage de programmation (Louden
and Lambert (2004).

Les règles sémantiques définissent la signification de chacun des éléments combinés qui peuvent
être construits dans le langage de programmation.

2.2 Erreurs classiques en programmation


Les erreurs de programmation peuvent être de deux types, à savoir : les erreurs de syntaxe et les
erreurs de sémantique.

2.2.1 Erreurs de syntaxe


Une erreur de syntaxe se produit lorsque la ou les instructions ne respectent pas les règles de gram-
maire d’un langage de programmation. Par analogie avec les langues naturelles, c’est comme dire « Je
suis aux hôpital » au lieu de dire « Je suis à l’hôpital ». Tant que des erreurs de syntaxe sont détectées
lors de la traduction, le programme ne peut pas être traduit en langage machine ; par conséquent, il y
aura un arrêt de fonctionnement (un « plantage ») ainsi que par l’affichage d’un message d’erreur.

Il est à noter que les énoncés et symboles utilisés n’ont aucun sens en eux-mêmes. Ils doivent être
combinés de manière correcte. Par conséquent, il faut être très attentif à respecter scrupuleusement
la syntaxe du langage. Cependant, il existe des langages de programmation, les lettres minuscules ne
sont pas les mêmes que les lettres majuscules ; on dit qu’ils sont sensibles à la casse.

Les langages de programmation comme C, C++, C#, Java, Python, PHP, etc. sont sensibles à la
casse, tandis que les langages de programmation comme Fortran, BASIC, Pascal, Ada, Common Lisp,
HTML sont insensibles à la casse.

2.2.2 Erreurs de sémantique


Les erreurs sémantiques se produisent lorsque la logique n’est pas respectée. Généralement, le
programme fonctionne parfaitement. Cela signifie qu’il n’y a pas de message d’erreur, mais nous n’ob-
tenons pas ce que nous espérons.

En réalité, le programme fait exactement ce qu’on lui dit de faire. Le problème est que ce qu’on lui
a dit de faire n’est pas ce que nous voulons qu’il fasse, ce qui rend ces types d’erreurs très dangereux.
Par analogie avec les langues naturelles, c’est comme dire « j’ai une arme » en pensant que nous avons
un « arbre ». Notons que la phrase est syntaxiquement correcte, mais ne rend pas l’idée réelle du
locuteur.

2.3 Classification des langages de programmation


Plusieurs critères de classification peuvent être utilisés pour classer les langages de programmation,
à savoir :
• Classification selon le niveau d’abstraction par rapport au jeu d’instructions du processeur ;
• Classification selon le domaine d’utilisation prévu ;
• Classification selon le paradigme de programmation.

3
2.3.1 Classification selon le niveau d’abstraction par rapport au jeu d’instructions du pro-
cesseur
Selon le niveau d’abstraction par rapport au jeu d’instructions du processeur, on distingue les
langages de programmation de bas niveau et les langages de programmation de haut niveau.

A. Langages de programmation de bas niveau


Définition 2.2. Un langage de programmation de bas niveau est un langage de programmation qui ne
fournit que peu d’abstraction ou pas d’abstraction par rapport au jeu d’instructions du processeur de
la machine.

Ainsi, ses commandes ou ses fonctions sont structurellement similaires aux instructions du pro-
cesseur. Les langages de bas niveau sont parfois décrits comme étant « proches du matériel ». Les
programmes écrits dans des langages de bas niveau ont tendance à être relativement non portables,
car ils permettent d’écrire des programmes en tenant compte des caractéristiques particulières de l’or-
dinateur censé exécuter le programme.

Ce sont des langages permettant de manipuler explicitement des registres, des adresses mémoires,
des instructions machines.

Ainsi, on distingue deux type des langages de bas niveau : le langage machine et le langage
d’assemblage.

A.1. Langage machine


Définition 2.3. Le langage machine, appelé aussi code machine est un langage de programmation de
bas niveau constitué d’une suite des bits (des « 0 » et des « 1 ») interprétable directement par le
processeur d’un ordinateur.

C’est le langage natif du processeur. Chaque instruction amène le processeur à effectuer une tâche
très spécifique, telle qu’un chargement, un stockage, un saut ou une opération d’unité arithmétique et
logique (UAL) sur une ou plusieurs unités de données dans les registres ou la mémoire du processeur.

A.2. Langage d’assemblage


Définition 2.4. Le langage d’assemblage ou langage assembleur est un langage de programmation de
bas niveau qui représente les combinaisons des bits du langage machine par des codes mnémoniques,
facile à retenir ou lisible à l’homme. Ce langage est composée d’instructions et des données à traiter
sous forme binaire.

B. Langages de programmation de haut niveau


Définition 2.5. Un langage de programmation de haut niveau ou langage de programmation évolué est
un langage de programmation avec une forte abstraction par rapport au jeu d’instructions du processeur
de la machine.

C’est donc un langage de programmation qui permet d’écrire des programmes en utilisant des
mots communs issus des langues naturelles (très souvent l’anglais) et des symboles mathématiques
communs. De plus, un langage de programmation est généralement indépendant de la machine : le
même programme peut être utilisé tel quel sur plusieurs types d’ordinateurs – bien que des programmes
puissent également être conçus pour un système d’exploitation particulier.

4
Plankalkül (prononciation allemande : ["pla :nkalky :l]) est un langage de programmation de haut
niveau conçu pour un ordinateur par l’ingénieur civil Konrad Zuse entre 1942 et 1945. Cependant,
il n’a pas été implémenté à cette époque, et ses contributions originales ont été largement isolées
des autres développements en raison de la Seconde Guerre mondiale. Le premier langage de haut
niveau largement utilisé fut donc Fortran. Ainsi, on considère souvent que Fortran (conçu en 1954)
est considéré comme le premier langage de programmation de haut niveau, suivi plus tard par Lisp
(en 1958), Algol (en 1958) et Cobol (en 1959).

2.3.2 Classification selon le domaine d’utilisation prévu


Selon le domaine d’utilisation prévu, on distingue les langages de programmation spécifiques au
domaine et les langages de programmation d’usage général.

A. Langages de programmation spécifiques au domaine


Définition 2.6. Un langage de programmation spécifique au domaine est un langage de programmation
spécialisé dans un domaine d’application particulier.

Exemple 2.1. Les langages comme HTML, Cobol, R et MATLAB sont des langages de programmation
spécifiques au domaine. En effet,
1. HTML (de l’anglais « HyperText Markup Language » est un langage de programmation destiné
à représenter les pages web ;
2. Cobol (de l’anglais « COmmon Business Oriented Language ») est un langage commun pour la
programmation d’applications de gestion. Aujourd’hui, il est surtout utilisé dans les secteurs de
la banque, des assurances, des grandes administrations ;
3. R est un langage de programmation destiné aux applications statistiques et à la science des
données ;
4. MATLAB (de l’anglais « MATrix LABoratory ») est un langage de programmation destiné à
permettre les manipulations matricielles, le traçage des fonctions et des données, la mise en
œuvre d’algorithmes, la création d’interfaces utilisateur.

B. Langages de programmation à usage général


Définition 2.7. Un langage de programmation à usage général, appelé aussi langage de programmation
généraliste est un langage de programmation permettant de créer des logiciels dans une grande variété
de domaines d’application.

Exemple 2.2. Les langages comme C, C++, C#, BASIC, Kotlin, Delphi, Java, Python, etc. sont des
langages de programmation d’usage général.

2.3.3 Classification selon le paradigme de programmation


En tenant compte du paradigme ou approche de programmation, on distingue plusieurs types de
langages de programmation, regroupé en deux familles principales, à savoir les langages de program-
mation impératifs et les langages de programmation déclaratifs.

A. Langages de programmation impératifs


Définition 2.8. Un langage de programmation impérative est un langage de programmation qui décrit
les opérations en séquences d’instructions exécutées par l’ordinateur pour modifier l’état du programme.

Ces types de langages de programmation sont subdivisés en trois grands sous-groupes :

5
• Les langages de programmation procéduraux, qui sont des langages de programmation impéra-
tifs qui se fondent sur le concept de procédure (c’est-à-dire un sous-programme ne retournant
aucune valeur) et de fonction (c’est-à-dire un sous-programme retournant une et une seule va-
leur).

Exemple 2.3. C, Fortran, BASIC, Ada, Cobol, PL/SQL sont des langages de programmation
procéduraux.

• Les langages de programmation structurés, qui sont des langages de programmation impéra-
tifs qui visent à améliorer la clarté, la qualité et le temps de développement d’un programme
informatique en utilisant largement les structures de contrôle et les sous-programmes tout en éli-
minant les instructions « aller à » (goto) ou du moins en limitant son usage à des cas inhabituels
et graves. La programmation structurée est possible dans n’importe quel langage de program-
mation procédural, mais certains comme Fortran IV ne s’y prêtaient pas très bien. Parmi les
langages de programmation les plus structurants, on retrouve PL/I, Pascal et, plus tard pour
les très gros projets, Ada.
• Les langages de programmation orientés objet ou les langages de programmation par objet, qui
sont des langages consistant en la définition et l’assemblage de composantes logicielles appelées
objets. Une fédération d’objets forme une classe.

Exemple 2.4. C#, C++, Objectif C, Java, VB.net et Effeil sont des langages de programmation
orientés objet.

B. Langages de programmation déclarative


Définition 2.9. Un langage de programmation déclaratif est un langage de programmation qui consiste
à déclarer les données du problème et demander au programme de le résoudre.

Ces types de langages de programmation sont subdivisés en quatre grands sous-groupes :


• Les langages de programmation fonctionnels, qui sont des langages de programmation déclaratifs
où les actions reposent sur les fonctions mathématiques.

Exemple 2.5. Lisp, Scheme, Scala, Erlang, Anubis et PureScript sont des langages programma-
tion fonctionnels.

• Les langages de programmation logiques, qui sont des langages de programmation déclaratifs
consistant à exprimer les problèmes et les actions sous forme de prédicats (en utilisant la logique
du premier ordre).

Exemple 2.6. Prolog, CLIPS, Gödel et Fril sont des langages de programmation logiques.

• Les langages de programmation logiques fonctionnels, qui sont des langages de programmation
déclaratifs qui combinent des paradigmes de la programmation fonctionnelle et de la program-
mation logique.

Exemple 2.7. Curry, Mercury et ALF sont des langages de programmation logiques fonctionnels.

• Les langages de programmation descriptifs, qui sont des langages de programmation déclaratifs
qui permettent de décrire des structures des données. Ces types de langage sont spécialisés dans
l’enrichissement d’information textuelle. Ils utilisent des balises, qui sont des unités syntaxiques
servant à délimiter une séquence de caractères ou marquant une position précise à l’intérieur
d’un flux de caractères.

Exemple 2.8. LATEX, HTML et XML sont des langages de programmation descriptifs.

6
Actuellement, il existe des langages de programmation qui combinent plusieurs paradigmes de
programmation. Ces langages sont appelés langages de programmation multi-paradigmes.

Exemple 2.9. Python (programmation structurée, fonctionnelle et orientée objet), R (programmation


structurée, procédurale, fonctionnelle et orientée objet), Ciao (programmation logique, fonctionnelle,
procédurale et orientée objet), Oz (programmation orientée objet, structurée, procédurale, concurrent,
fonctionnelle et logique)

2.4 Traducteurs
Un programme écrit dans un langage de programmation non natif au processeur peut être exécuté
sur plusieurs machines moyennant des petites modifications. Ainsi, ce programme est d’abord traduit
en une série d’instructions et d’instructions écrites en langage machine avec exécution ; le programme
spécial pour effectuer cette traduction s’appelle traducteur.

Parmis les traducteurs, on distingue les assembleurs, les compilateurs et les interpréteurs.

2.4.1 Assembleur
Définition 2.10. Un assembleur est un programme qui permet de convertir des codes mnémoniques du
langage d’assemblage en programme binaire.

Ci-après quelques exemples des assembleurs :

Exemple 2.10. Merlin, MAC/65, Lisa, ORCA/M, RMAC, VASM, A86/A386, IBM ALP.

2.4.2 Interpréteur
Définition 2.11. Un interpréteur est un programme qui traduit ligne par ligne dès la saisie du pro-
gramme.

Un langage de programmation est dit interprété lorsque ses opérations d’analyses et de traductions
sont effectuées par un interpréteur.

Exemple 2.11. BASIC, MATLAB, Perl, Prolog et PHP sont des langages de programmation interpre-
tés.

2.4.3 Compilateur
Définition 2.12. Un compilateur est un programme qui transforme l’intégralité de programme écrit en
un langage de haut niveau (code source) en programme binaire.

Un langage de programmation est dit compilé lorsque ses opérations d’analyses et de traductions
sont effectuées par un compilateur.

Exemple 2.12. LATEX, C#, C, C++, Fortran, Cobol sont des langages de programmation compilés.

Maintenant que nous avons posé le contexte en ce qui concerne les langages de programmation,
nous pouvons passer à la présentation de nos deux langages de programmation.

7
3 Présentation du langage Python
Python est un langage de programmation de haut niveau portable et gratuit, doté d’un typage
dynamique fort, d’une gestion automatique de la mémoire et d’un système de gestion des exceptions.
Python est développé depuis 1989 par Guido van Rossum et de nombreux contributeurs bénévoles
(Swinnen (2012)). Sa première version fut publiée le 20 fevrier 1991 et sa derniere version date du 5
mai 2023.

Python est un langage de programmation interprété, c’est-à-dire que les instructions qu’on lui
envoie sont « traduites » en langage machine au fur et à mesure de leur lecture.

3.1 Caractéristiques du langage Python


Parmi les caractéristiques qui ont séduit les utilisateurs de Python, nous pouvons citer les sui-
vantes :
• Python est libre, c’est-à-dire qu’on on peut l’utiliser sans restriction dans des projets commer-
ciaux.
• Python est multi-paradigme, car il favorise la programmation orientée-objet, impérative struc-
turée et procédurale et fonctionnelle (il dispose des compréhensions des listes, des dictionnaires
et des ensembles).
• Python est multi plate-forme, car il est disponible sur les plates-formes comme des smartphones
et les ordinateurs centraux. De plus, il est disponible sur plusieurs systèmes d’exploitation telles
que les variantes d’Unix (GNU/Linux, Debian, Android, etc.), mais aussi sur plusieurs sys-
tèmes d’exploitation propriétaires tels que iOS, MacOS, BeOS, NeXTStep, MS-DOS, NetBSD,
FreeBSD et les différentes versions de Windows.
• Python est (optionnellement) multi-threadé.
• Python est langage à typage dynamique, car les programmeurs Python ne doivent pas déclarer les
types de variables lors de l’écriture du code, car Python les détermine au moment de l’exécution.
• Python est orthogonal (un petit nombre de concepts suffit à engendrer des constructions très
riches), réflectif (il supporte la métaprogrammation, par exemple la capacité pour un objet de
se rajouter ou de s’enlever des attributs ou des méthodes, ou même de changer de classe en cours
d’exécution) et introspectif (un grand nombre d’outils de développement, comme le debugger
ou le profiler, sont implantés en Python lui-même).
• Python est extensible, c’est-à-dire qu’il permet l’interfaçage facile avec des bibliothèques C
existantes. Aussi, il peut interagir avec d’autres logiciels de traitement des données, des systèmes
de gestion de base des données et des systèmes d’information géographiques.
• Python est en évolution continuelle, car il soutenu par une communauté d’utilisateurs enthou-
siastes et responsables, dont la plupart sont des supporters du logiciel libre. Parallèlement à
l’interpréteur principal, écrit en C et maintenu par le créateur du langage, un deuxième inter-
préteur, écrit en Java, est en cours de développement.

3.2 Commencer à utiliser le langage Python


Plusieurs solutions existent pour écrire des programmes en Python. L’interpréteur peut être lancé
directement depuis la ligne de commande (dans un « shell » Linux, ou dans une fenêtre DOS sous
Windows). Ou, on peut utiliser des « fenêtres de terminal », ou même dans un environnement de tra-
vail spécialisé tel que les environnement de développement (abrégé EDI en français ou IDE en anglais,
pour integrated development environment) (Swinnen (2012)).

8
Voici quelques IDE utilisés pour programmer en Python : Visual Studio Code, Atom, Vim, PyDev,
Jupyter Notebook, JupyterLab, Spyder, PyCharm, etc.

Cependant, les quatre derniers IDE sont accessibles depuis la distribution Anaconda téléchargeable
depuis le lien https://www.anaconda.com/download.

Anaconda est une distribution libre pour les langages de programmation Python et R, dans les
applications scientifiques. Dans cette distribution, on peut avoir accès à plusieurs autres applications
qui peuvent être des IDE, des bibliothèques, etc. Par défaut, on a les applications suivantes :
1. JupyterLab ;
2. Jupyter Noteboook ;
3. Spyder ;
4. Glueviz ;
5. Orange ;
6. Rstudio ;
7. Visual Studio Code ;
8. etc.

Figure 1 – Logo d’Anaconda.

Après installation d’Anaconda, il suffit de l’ouvrir pour obtenir l’interface d’Anaconda Navigator.

Sauf indication contraire, dans ce papier et dans toute cette série, nous utiliserons l’IDE Jupyter
Notebook. Jupyter Notebook (formellement connu sous le nom de The IPython Notebook) est un
IDE interactif dans lequel on peut combiner l’exécution des codes, le texte riche, le multimédia et
les équations mathématiques et les graphiques. À l’aide de cet IDE, le programmeur peut créer et
partager les documents. Il est supporté par plusieurs systèmes d’exploitation, notamment le Linux,
Windows et MacOS.

Voici les étapes pour exécuter un script Python sur Jupyter Notebook :
1. Une fois l’interface d’Anaconda Navigator lancé, il faut trouver l’application Jupyter Notebook.
Pour ce faire, cliquer sur l’icône de lancement « Launch » (Voir Figure 2) dans la zone Jupyter
Notebook.
2. Ensuite, créer un nouveau (fichier) Notebook en cliquant sur « New » puis « Python 3 » (Voir
Figure 3).
3. Un fichier Notebook nouvellement créé se présente, par défaut, avec des cellules « Code »
permettant d’écrire des lignes de code en langage Python puis de les exécuter. Le mot « Entrée
[ ] » (ou « In [ ] ») est écrit dans la marge à gauche dans ce type de cellule (Voir Figure 4).
4. Pour utiliser son fichier Notebook, il faut exécuter les cellules du Notebook dans l’ordre, les unes
après les autres. Pour cela, sélectionner la cellule, un cadre autour de la cellule apparaît. Cliquer
sur la commande « Exécuter » (« Run ») ou utiliser le raccourci clavier « Shift + Enter ».

9
Figure 2 – Présentation du navigateur d’Anaconda.

Figure 3 – Ouverture de Python 3.

10
Figure 4 – Présentation de l’éditeur de codes.

Il est très important d’exécuter les cellules de code dans l’ordre du programme. Les nombres entre
crochets peuvent ne pas suivre un par un, surtout si on exécute la même cellule plusieurs fois de suite,
mais l’ordre de ces nombres doit être croissant au fur et à mesure que l’on progresse dans le fichier
Notebook.

Une fois exécuté, le résultat de l’exécution (« Sortie » (ou « Out ») est affiché dans la cellule sous
le code (cela peut être un message d’erreur si son code est erroné). Il peut ne rien afficher si le code
ne le demande pas.

Il est possible d’exécuter la même cellule plusieurs fois de suite lorsque l’on veut modifier et tester
le code qu’elle contient. Dans ce cas, il n’est pas nécessaire de réexécuter les cellules précédentes, ni
de supprimer la sortie précédente de la cellule concernée car elle sera remplacée automatiquement lors
de la nouvelle exécution de la cellule.

Si on a plusieurs cellules, on les exécuter une par une ou toutes en même temps en cliquant sur «
Cell » puis « Run All » (Voir 5).

Figure 5 – Exécution de plusieurs cellules à la fois.

Enfin, il est possible de relancer le fichier Notebook à partir de la première cellule après une ou
plusieurs exécutions.

11
Pour cela, il suffit de cliquer alors sur les commandes « interrompre le noyau » (ou « interrupt
the kernel ») puis « redémarrer le noyau (avec confirmation) » (ou « restart the kernel (with dialog)
») ou « redémarrer le noyau et ré-exécuter tout le notebook (sans confirmation) » (ou restart the
kernel, then re-run the whole notebook (with dialog) »).

Notons que « interrompre le noyau » annule l’exécution de toutes les cellules du fichier Notebook
(même si les nombres entre crochets ne s’effacent pas). Il faut donc relancer l’exécution des cellules
depuis le début du fichier.

4 Présentation du langage R
Le langage R est une interprétation du langage de programmation S avec l’ajout d’une portée
lexicale inspirée de Scheme et d’un ramasse-miettes (informatique). Il s’agit donc d’un langage (le S)
développé par John Chambers, un statisticien de l’université de Harvard avec l’aide de ses collègues
des Bell Laboratories dans les années 1975-1976.

Cependant, le projet R est né en 1993 (Ihaka and Gentleman (1996)) en tant que projet de recherche
de Ross Ihaka et Robert Gentleman à l’Université d’Auckland (Nouvelle-Zélande) (Tippmann (2015)).
La version 1.0.0 de R, la première version officielle du langage R, est sortie le 29 février 2000.

4.1 Caractéristiques du langage R


R partage quasiment toutes les caractéristiques de Python, c’est-à-dire :
• R est libre, c’est-à-dire qu’on on peut l’utiliser sans restriction dans des projets commerciaux.
• R est multi-paradigme, car il favorise la programmation orientée-objet, impérative structurée
et procédurale et fonctionnelle (il dispose des compréhensions des listes, des ensembles, etc.).
• R est multi plate-forme, car il est disponible sur les plates-formes comme des smartphones et
les ordinateurs centraux. De plus, il est disponible sur plusieurs systèmes d’exploitation telles
que GNU/Linux, Windows, NetBSD, FreeBSD et MacOS.
• R comporte en standard de très nombreuses fonctionnalités de calcul statistique ainsi que de
représentation graphique.
• R est langage à typage dynamique, car, comme Python, ne nécessite pas de déclarer les types
de variables lors de l’écriture du code.
• Python est réflectif et introspectif.
• Python est extensible. Il permet donc d’interagir avec des systèmes de gestion de bases de
données (cas de PostgreSQL via le langage PL/R et MySQL), avec des systèmes d’information
géographique (cas de GRASS), ou ceux qui permettent d’exporter ses résultats en LATEXou
OpenDocument.
• Grâce à son panoplie des paquets (packages en anglais), le langage R est aujourd’hui un outils
puissant pour aider dans plusieurs types d’applications, notamment la statistique multivariée
(analyse des données), l’économétrie, la biométrie, l’épidémiologie, la modélisation, le traitement
d’image, l’analyse des graphes, l’analyse numérique, le Data mining, le Big Data, et tant d’autres.
De plus, il permet le graphisme de haute qualité.
• R est également en évolution continuelle.

4.2 Commencer à utiliser le langage R


L’interpréteur R, aussi appelé R de base (R base) est avant tout une application en ligne de
commande (Goulet (2016), Goulet (2023)). R base peut être téléchargé à partir du lien https://cran.r-
project.org/bin/. Dans ce lien, il y a des dossiers contenant chacun une version R base pour les systèmes

12
Linux, Windows et MacOS(X).

Une fois R installé sur son ordinateur, il faut simplement l’exécutable correspondant pour démarrer
le programme. Attente de commandes (par défaut le symbole « > ») apparaît alors indiquant que R
est prêt à exécuter les commandes (Paradis (2005)), comme dans la figure 6. Sous Windows, l’interface
graphique fournie avec R base est assez rudimentaire, permettant ainsi de faciliter certaines opérations
telle que l’installation de packages externes. Cette interface n’offre pas plus de fonctionnalités pour
l’édition de code R. L’interface graphique de R sous MacOS est la plus élaborée (Goulet (2023)). C’est
ainsi qu’il est conseillé d’utiliser d’autres interfaces graphiques, au-dessus de R base.

Figure 6 – Présentation de R base.

• RGUI, l’interface graphique installée par défaut sous Windows. Cette interface est beaucoup
plus utilisé par les utilisateurs Windows.
• JGR(lire « Jaguar », abréviation de Java GUI for R) est un environnement permettant d’utiliser
R sur Java.
• Rattle (abréviation de R analytical tool to learn easily), est une interface graphique populaire
pour le Data mining en utilisant R. Il présente des résumés statistiques et visuelles de données,
transforme des données qui peuvent être facilement modélisés, construit des modèles non super-
visés et supervisés à partir des données, présente graphiquement les performances du modèle et
évalue de nouveaux ensembles de données.
• Rcmdr, (abréviation de R commander), est une interface graphique R qui est implémenté sous
la forme d’un paquet R, le paquetage Rcmdr, disponible gratuitement sur CRAN (l’archive de
paquets R).
• RKWard, est une interface graphique à fonctionnant originairement sous KDE. Elle fonctionne
actuellement sous Linux, Windows et Mac. RKWard permet d’éditer des tables, d’importer des
objets R ou des listes au format csv, puis de faire des analyses statistiques. Ces analyses sont des
plug-in, qui comportent une interface graphique avec des options à choisir à la souris, mais aussi

13
une ligne de commande permettant aux utilisateurs avancés d’entrer exactement les analyses
souhaitées.
• Sciviews R GUI, interface graphique fournissant une série de logiciels open source pour compléter
R, pour le calcul statistique dans un flux de travail reproductif.
• RStudio, est une interface graphique rendant R plus facile à utiliser. Il comprend un éditeur
de code, des outils de débogage et de visualisation. Cette interface a aussi l’avantage d’être
multiplateforme, car elle fonctionne sur Windows, OS X et GNU/Linux.
Notons que distributeur Anaconda donne aussi accès à RStudio, mais que n’est pas souvent à jour.
Cependant, une autre solution est d’utiliser le RStudio Cloud, qui est la version en ligne de RStu-
dio, accessible à partir du lien https://login.rstudio.cloud/login?redirect=%2F, dans lequel il faut se
connecter (ou s’inscrire si l’utilisateur n’a pas encore été créé).

L’interface de RStudio (que ça soit sa version en ligne) se présente comme dans la figure 7.

Figure 7 – Présentation de RStudio.

Le téléchargement de RStudio (version Desktop) peut se faire en accédant au lien


https://posit.co/download/rstudio-desktop/. Dans ce lien, il y a aussi la possibilité d’installer le R
base, qui est tout de même un préalable pour l’installation de RStudio. La version RStudio Cloud ne
nécessite pas l’installation de R base.

Le panneau de gauche est la console (1). Ici, le code à envoyer à R peut être saisi directement.
C’est à travers cette console que les codes sont envoyés à l’exécution.

La partie supérieure droite (2) est l’espace de travail et on y voit des objets (tels que des ensembles
de données et des variables).

La partie inférieure droite (3) sert à plusieurs fins. C’est là que les différents graphiques appa-
raissent, où vous effectuez la gestion des fichiers où on effectue la gestion des fichiers (y compris
l’importation de fichiers depuis son ordinateur), où on effectue la gestion des fichiers (y compris l’im-
portation de fichiers depuis son ordinateur), où on installe les packages et où les informations d’aide

14
s’affichent. On peut utiliser les onglets pour basculer entre ces écrans au besoin.

Le code peut être exécuté directement depuis la console (1), mais il est toujours conseillé d’utiliser
R Script pour les raisons suivantes. Premièrement, R Script permet d’exécuter des scripts R entiers,
ce qui signifie que l’écriture et l’exécution de programmes R complets peuvent être effectuées dans un
seul fichier. Cela peut être très utile pour automatiser des tâches répétitives ou pour créer des analyses
de données complexes. De plus, R Script permet de spécifier des arguments de ligne de commande,
ce qui peut être très utile pour automatiser des tâches ou pour exécuter des analyses sur de grands
ensembles de données. Enfin, R Script permet également de produire des sorties de script dans diffé-
rents formats, tels que HTML, PDF ou CSV.

Ainsi, voici les étapes pour exécuter un script R sur RStudio :


1. Ouvrir RStudio.
2. Ouvrir un nouveau script en allant dans le menu « Fichier » (ou « File ») ; puis cliquer à «
Nouveau Fichier » (ou « New File ») ; enfin cliquer à « Script R » (ou « R Script » (Voir Figure
8).

Figure 8 – Lancement de R Script sans raccourci clavier.

Le même résultat s’obtient en appuyant sur le symbole « + » (juste en dessus du menu Fichier
(ou File) ; plus en cliquant sur « Script R » (ou « R Script » (Voir Figure 9).
3. S’assurer que la console R est ouverte dans la fenêtre inférieure droite de l’interface RStudio, puis
sélectionner le code qu’on souhaite exécuter en cliquant dessus avec sa souris (Voir l’encadrement
rouge de la figure 10).
4. Cliquer sur le bouton « Run » (ou « Exécuter » ou faire le raccourci « Ctrl+Enter » sur
Windows ou « Cmd+Enter » sur Mac pour exécuter le code sélectionné.

15
Figure 9 – Lancement de R Script sans raccourci clavier.

Les résultats de l’exécution s’afficheront dans la console RStudio (Voir l’encadrement bleu de la
figure 10).

Figure 10 – Exécution du code R dans RStudio.

Pour exécuter l’ensemble du script en une seule fois, cliquer sur le bouton « Run » (ou « Exécuter
») ou utiliser le raccourci clavier « Ctrl+Shift+S » sur Windows ou « Cmd+Shift+S » sur Mac.

5 Comparaison entre le langage Python et le langage R


Dans cette section, nous allons comparer rubrique par rubrique les langages de programmation
Python et R. Les tableaux 1, 2 et 3 contiennent les différents éléments de comparaison, dont la
plupart sont tirés de la publication de Grogan (2018).

16
Table 1 – Comparaison entre Python et R.

Critère Python R
Objectif Python est un langage gé- R est un langage destiné à la
néraliste, destiné principale- Statistique et l’analyse des
ment au développement et données.
au déploiement de logiciels.
Utilisateurs Python est plus utilisé par R est plus utilisé par les data
les data scientists qui ont scientists qui ont un back-
un background en dévelop- ground en Mathématiques
pement d’application. (et Statistique).
Communauté La communauté py- La communauté de R-
thon.org (plus précisement bloggers, accessible
https://www.python.org. au lien https://www.r-
De plus, le bulletin élec- bloggers.com/, qui compte
tronique Python Weekly plus de 750 contributeurs
fournit des informations qui apportent régulièrement
importantes (des actualités, des informations utiles sur
des articles, des nouvelles le langage R.
versions, des emplois et plus
encore).
Courbe d’apprentissage Python est considéré comme Avec R, les débutants
l’un des langages de pro- peuvent effectuer des tâches
grammation les plus proches d’analyse de données en
de l’anglais, grâce à sa syn- quelques minutes, mais la
taxe intuitive et facile à lire. complexité des fonction-
Il est donc considéré comme nalités avancées rend plus
un bon langage pour les pro- difficile le développement
grammeurs débutants. Sa de l’expertise. Sa courbe
courbe d’apprentissage est d’apprentissage n’est pas
linéaire et fluide. simple, du fait que sa
syntaxe est plutôt intui-
tive pour les habitués des
statistiques.
Rapidité Python a beaucoup plus de R est relativement plus lent
flexibilité dans l’interaction que Python ou d’autres lan-
avec d’autres langages de gages de programmation, en
programmation et est plus particulier si le code est mal
rapide par rapport à R. écrit. Cependant, il existe
des solutions à cela, comme
le package FastR, pqR et
Penjin.
Apprentissage automatique Python a des bibliothèques R a des bibliothèques d’ap-
d’apprentissage automa- prentissage automatique
tique plus avancées, telles plus avancées, telles que
que Scikit-learn et Tensor- Caret et MLR.
Flow.

17
Table 2 – Comparaison entre Python et R. (suite 1)

Critère Python R
Ecosystèmes Python possède des écosys- R dispose d’écosystèmes
tèmes de packages robustes de packages robustes et
et étendus. La plupart des étendus. Les packages R
packages en Python (plus (presque 19 000) sont nor-
de 300 000) sont hébergés malement stockés dans le
dans le Python Package In- Comprehensive R Archive
dex (PyPi). Voici quelques Network (CRAN). Voici
packages Python : quelques packages R :
• NumPy, qui fournit • matrixStats, fournit
une large collection de des fonctions haute-
fonctions pour le calcul ment optimisées pour
scientifique ; le calcul de résumés
• Pandas, qui est parfait communs sur des
pour la manipulation lignes et des colonnes
de données. de matrices
• Matplotlib : la biblio- • tidyverse, qui fournit
thèque standard pour des outils pour mani-
la visualisation de don- puler des données.
nées. D’autres incluent • ggplot2, qui est la
Seaborn, Plotly, Pygal bibliothèque parfaite
et Bokeh. pour visualiser les
• Scikit-learn : est une données. Plotly en
bibliothèque en Py- R ainsi que caret,
thon qui fournit de igraph et highcharter
nombreux algorithmes peuvent également
d’apprentissage auto- être utilisés.
matique. • Caret : l’une des
bibliothèques les plus
Cependant, les packages que
importantes pour
dispose Python pour la vi-
l’apprentissage auto-
sualisation de données per-
matique dans R.
mettent de créer des gra-
phiques de qualité profes- En effet, R dispose de fonc-
sionnelle, bien que moins tionnalités de visualisation
avancés que ceux de R. de données plus avancées et
spécifiques que Python, ce
qui lui permet de créer des
graphiques attractifs avec
des notations et des for-
mules. Le graphisme de R
est considéré comme plus
avancé que celui de Python
et est souvent comparé à ce-
lui d’un logiciel de statis-
tiques.

18
Table 3 – Comparaison entre Python et R. (suite 2)

Critère Python R
Applications Web Python est souvent consi- R, quant à lui, peut égale-
déré comme plus approprié ment être utilisé pour créer
que R. Python possède de des applications Web à l’aide
nombreux frameworks Web de packages tels que Shiny.
populaires tels que Django
et Flask, qui facilitent la
création d’applications Web.
Applications
• Mozilla utilise la pro- • Ford utilise des outils
grammation Python open source comme la
pour explorer sa large programmation R et
base de code. Mozilla Hadoop pour l’aide à
publie plusieurs pa- la décision basée sur
ckages open source les données et l’analyse
construits à l’aide de statistique.
Python. • Le célèbre géant de
• Dropbox est entière- l’assurance Lloyd’s
ment écrit en code Py- utilise le langage R
thon qui compte main- pour créer des dia-
tenant près de 150 mil- grammes animés qui
lions d’utilisateurs en- fournissent des rap-
registrés. ports d’analyse aux
• Walt Disney utilise investisseurs.
Python pour renforcer • Google utilise la pro-
la suprématie de ses grammation R pour
processus créatifs. analyser l’efficacité des
• Certains autres pro- campagnes publici-
duits exceptionnels taires en ligne, prédire
écrits en langage les activités écono-
Python sont Co- miques et mesurer le
cos2d, Mercurial, Bit retour sur investisse-
Torrent et Reddit. ment des campagnes
publicitaires.
• Facebook utilise le
langage R pour ana-
lyser les mises à jour
de statut et créer le
graphique du réseau
social.
• Zillow utilise la pro-
grammation R pour
promouvoir les prix
des logements.

19
6 Conclusion
Le choix d’un tel ou tel autre langage de programmation est motivé par plusieurs raisons. Pre-
mièrement, il peut s’agir d’une préférence personnelle ou encore de ce qui l’apprenant trouverait plus
facile à maîtriser dès le départ. Cependant, les spécialistes des mathématiques et statistiques ont géné-
ralement tendance à se tourner vers R alors que les informaticiens et les ingénieurs logiciels préfèrent
utiliser Python. Il est aussi conseillé pour celui qui n’a pas vraiment de notions préalables en codage
pourra par exemple de commencer par le langage Python, ou d’apprendre les deux simultanément,
tout en prenant Python comme référence ; c’est l’approche que nous allons utiliser tout au long de
cette série de papiers. Deuxièmement, le choix peut être motivé par les tâches à accomplir. Si l’activité
concerne principalement le calcul des chiffres, la visualisation des données et des analyses statistiques
ponctuelles, R peut être un choix judicieux. En effet, l’écosystème de R peut se montrer bien supérieur
à celui de Python en matière de techniques statistiques avancées. Cependant, si la mission consiste à
recueillir des données à partir de sites web, de fichiers ou d’autres sources de données, Python est de
loin le meilleur choix.

En outre, il également des packages tels que RPy2 et rPython qui permettent d’intégrer les lan-
gages de programmation R et Python. Nous aborderons ces packages dans un article ultérieur. En
effet, RPy2 est un package Python qui permet d’utiliser R depuis Python. Ce qui signifie appeler des
fonctions R depuis Python ; souvent utilisé pour l’analyse et la visualisation de données, car R est un
langage de programmation populaire pour ces tâches. Et rPython, d’autre part, est un package Python
qui permet d’intégrer Python dans R, c’est-à-dire d’appeler des fonctions Python depuis R ; souvent
utilisé pour l’optimisation et la simulation, car Python est un langage de programmation populaire
pour ces tâches.

En résumé, il est recommandé de maîtriser les deux langages de programmation, car ils sont com-
plémentaires et chacun d’eux peut être utilisé pour résoudre la plupart des problèmes de Data Science
en utilisant les packages disponibles. Cependant, la réussite dans ce domaine dépend également de la
méthodologie, des compétences du Data Scientist et des ressources disponibles, qui sont des facteurs
importants indépendamment du choix du langage de programmation. D’ailleurs, en maîtrisant les deux
langages, un Data Scientist peut tirer parti des avantages de chacun pour résoudre des problèmes spé-
cifiques.

De plus, de nombreuses entreprises utilisent une combinaison de R et Python pour leurs projets
d’analyse de données et d’apprentissage automatique. En maîtrisant les deux langages, un data scientist
peut être plus polyvalent et plus utile pour ces entreprises.

20
Références
Dhar, V. (2013). Data science and prediction. Communication of the Association for Computing
Machinery, 56(12) :64–73.

Gabbrielli, M. and Martini, S. (2010). Programming Languages : Principles and Paradigms. Springer,
Berlin.

Goulet, V. (2016). Introduction à la programmation R. CRAN.

Goulet, V. (2023). Programmer avec R. CRAN.

Grogan, M. (2018). Python vs. R for Data Science. O’Reilly, Boston, 1st edition.

Hayashi, C. (1998). What is Data Science ? Fundamental Concepts and a Heuristic Example. In
Hayashi, C., Yajima, K., Bock, H.-H., Ohsumi, N., Tanaka, Y., and Baba, Y., editors, Data Science,
Classification, and Related Methods, pages 40–51. Springer Japan.

Ihaka, R. and Gentleman, R. (1996). R : A language for data analysis and graphics. Journal of
Computational and Graphical Statistics, 5(3) :299–314.

Jakobowicz, E. (2018). Python pour le Data Scientist. Des bases du langage au machine learning.
Dunod, Paris.

Louden, K. C. and Lambert, K. A. (2004). Programming Languages : Principles and Practices. Cengage
Learning, Farmington Hills.

Mike, K. and Hazzan, O. (2023). What is Data Science ? Communications of the Association for
Computing Machinery, 66(2) :12–13.

Paradis, E. (2005). R pour les débutants. CRAN.

Swinnen, G. (2012). Apprendre à programmer avec Python 3. Eyrolles, Paris.

Tippmann, S. (2015). Programming tools : Adventures with R. Nature, 517 :109–110.

21
View publication stats

Vous aimerez peut-être aussi