Caroline Patenaude
Bibliothécaire - Bibliothèque des lettres et sciences humaines
25 octobre 2020
1. Principales caractéristiques
- Colab est une plateforme de programmation et d’analyse gratuite qui permet de créer et de partager du code dans l’environnement Google et qui ne nécessite donc aucune installation locale, ne nécessite qu’un compte Google!
- Comme Colab fait partie des services Google, les documents Colab peuvent être créés, enregistrés, copiés dans Google Drive et le partage et la collaboration se font de la même façon que pour les autres types de documents Google.
- Colab est aussi reliée à GitHub ce qui permet d’importer et d’exporter facilement des documents d’une plateforme à l’autre.
- Les fichiers créés dans Colab sont en fait des notebooks: documents interactifs qui permettent de combiner code, résultats, texte, graphiques, images,… (même format que les Jupyter Notebook et similaires aux documents RMarkdown).
2. R et autres langages dans Colab
- Le langage par défaut dans Colab est Python. Lorsque l’on crée un nouveau document Colab, seul le code Python est reconnu (une bibliothèque d’extraits de code Python se trouve dans la colonne de gauche <>)
- Mais il est possible d’utiliser plusieurs autres langages compatibles avec Colab dont R. Pour créer un nouveau document dont le langage de base est R (Python ne sera plus reconnu), il faut utiliser le lien suivant: https://colab.research.google.com/notebook#create=true&language=r
- On pourra alors utiliser le langage R exactement comme dans RStudio sauf pour l’importation et l’exportation de fichiers de données.
- Il est possible d’alterner entre le code Python et R dans un même document en utilisant des magics (packages Python qui permettent d’exécuter d’autres langages).
En résumé:
- Option intéressante à explorer pour se familiariser avec le langage R et créer des documents de présentation faciles à partager sans avoir quoi que ce soit à installer, mais pour travailler avec des données, RStudio est de loin préférable.
- L’importation et l’exportation de fichiers de données est plus complexe dans Colab que dans RStudio car nécessite d’utiliser du code Python et peut demander d’interagir avec Github. Raison pour laquelle nous utiliserons dans les capsules suivantes une base de données directement accessible via un package R.
3. Hébergement infonuagique
Avantages
- L’environnement d’exécution est hébergé sur les serveurs de Google et permet donc d’exécuter du code relativement complexe indépendamment de la puissance de son ordinateur et sans intallation locale.
- La connexion à l’environnement d’exécution (en haut à droite) se fait automatiquement à la première exécution de code -> le serveur attribue alors une certaine quantité de mémoire vive (RAM) et de mémoire (disque) que l’on voit dans la barre du haut.
- Colab offre en plus des outils gratuits d’accélération de traitement de code, GPU et TPU (CPU par défaut), processeurs permettant d’exécuter du code complexe plus rapidement.
Désavantages
- Après une certaine période d’inactivité, la connexion au serveur à distance sera perdue (pour économiser la capacité du serveur à distance). Mais une version Pro offre plus de puissance de calcul et de mémoire.
- Problématique pour la confidentialité.
4. Structure d’un document Colab
Un document Colab peut contenir deux types de cellules:
+ Code
+ Texte
4.1. Cellules de texte en format Markdown
- Le formatage des blocs de texte peut se faire directement avec le*balisage Markdown ou avec les options d’édition du bloc de texte.
- La table des matières à gauche est créé en fonction des différents niveaux de titres et sous-titres notées en markdown (#, ##, ###)
4.2. Cellules de code
## [1] 4
LS0tDQp0aXRsZTogIkNhcHN1bGUgcHJlYW1idWxlOiBwcsOpc2VudGF0aW9uIGRlIEdvb2dsZSBDb2xhYm9yYXRvcnkiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50OiANCiAgICB0aGVtZTogY2VydWxlYW4NCiAgICBoaWdobGlnaHQ6IGhhZGRvY2sNCiAgICB0b2M6IHRydWUNCiAgICB0b2NfZmxvYXQ6IA0KICAgICAgY29sbGFwc2VkOiBmYWxzZQ0KICAgICAgU21vb3RoX3Njcm9sbDogdHJ1ZQ0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICANCi0tLQ0KDQpDYXJvbGluZSBQYXRlbmF1ZGUgPGJyPiANCipbQmlibGlvdGjDqWNhaXJlIC0gQmlibGlvdGjDqHF1ZSBkZXMgbGV0dHJlcyBldCBzY2llbmNlcyBodW1haW5lc10oaHR0cHM6Ly9iaWIudW1vbnRyZWFsLmNhL2d1aWRlcy9kb25uZWVzLXN0YXRpc3RpcXVlcy1nZW9zcGF0aWFsZXMvZG9ubmVlcy1zdGF0aXN0aXF1ZXMpKiA8YnI+IA0KMjUgb2N0b2JyZSAyMDIwDQoNCjxicj4NCg0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQoNCiMjIDEuIFByaW5jaXBhbGVzIGNhcmFjdMOpcmlzdGlxdWVzDQoNCiogICBDb2xhYiBlc3QgdW5lIHBsYXRlZm9ybWUgZGUgcHJvZ3JhbW1hdGlvbiBldCBkJ2FuYWx5c2UgZ3JhdHVpdGUgcXVpIHBlcm1ldCBkZSBjcsOpZXIgZXQgZGUgcGFydGFnZXIgZHUgY29kZSBkYW5zIGwnZW52aXJvbm5lbWVudCBHb29nbGUgZXQgcXVpIG5lIG7DqWNlc3NpdGUgZG9uYyBhdWN1bmUgaW5zdGFsbGF0aW9uIGxvY2FsZSwgbmUgbsOpY2Vzc2l0ZSBxdSd1biBjb21wdGUgR29vZ2xlIQ0KKiAgIENvbW1lIENvbGFiIGZhaXQgcGFydGllIGRlcyBzZXJ2aWNlcyBHb29nbGUsIGxlcyBkb2N1bWVudHMgQ29sYWIgcGV1dmVudCDDqnRyZSBjcsOpw6lzLCBlbnJlZ2lzdHLDqXMsIGNvcGnDqXMgZGFucyBHb29nbGUgRHJpdmUgZXQgbGUgcGFydGFnZSBldCBsYSBjb2xsYWJvcmF0aW9uIHNlIGZvbnQgZGUgbGEgbcOqbWUgZmHDp29uIHF1ZSBwb3VyIGxlcyBhdXRyZXMgdHlwZXMgZGUgZG9jdW1lbnRzIEdvb2dsZS4gDQoqICAgQ29sYWIgZXN0IGF1c3NpIHJlbGnDqWUgw6AgR2l0SHViIGNlIHF1aSBwZXJtZXQgZCdpbXBvcnRlciBldCBkJ2V4cG9ydGVyIGZhY2lsZW1lbnQgZGVzIGRvY3VtZW50cyBkJ3VuZSBwbGF0ZWZvcm1lIMOgIGwnYXV0cmUuDQoqICAgTGVzIGZpY2hpZXJzIGNyw6nDqXMgZGFucyBDb2xhYiBzb250IGVuIGZhaXQgZGVzICpub3RlYm9va3MqOiBkb2N1bWVudHMgaW50ZXJhY3RpZnMgcXVpIHBlcm1ldHRlbnQgZGUgY29tYmluZXIgY29kZSwgcsOpc3VsdGF0cywgdGV4dGUsIGdyYXBoaXF1ZXMsIGltYWdlcywuLi4gKG3Dqm1lIGZvcm1hdCBxdWUgbGVzICpbSnVweXRlciBOb3RlYm9va10oaHR0cHM6Ly9qdXB5dGVyLm9yZy8pKiBldCBzaW1pbGFpcmVzIGF1eCBkb2N1bWVudHMgUk1hcmtkb3duKS4NCg0KPGJyPg0KDQojIyAyLiBSIGV0IGF1dHJlcyBsYW5nYWdlcyBkYW5zIENvbGFiDQoNCiogICBMZSBsYW5nYWdlIHBhciBkw6lmYXV0IGRhbnMgQ29sYWIgZXN0IFB5dGhvbi4gTG9yc3F1ZSBsJ29uIGNyw6llIHVuIG5vdXZlYXUgZG9jdW1lbnQgQ29sYWIsIHNldWwgIGxlIGNvZGUgUHl0aG9uIGVzdCByZWNvbm51ICh1bmUgYmlibGlvdGjDqHF1ZSBk4oCZZXh0cmFpdHMgZGUgY29kZSBQeXRob24gc2UgdHJvdXZlIGRhbnMgbGEgY29sb25uZSBkZSBnYXVjaGUgPD4pDQoqICAgTWFpcyBpbCBlc3QgcG9zc2libGUgZCd1dGlsaXNlciBwbHVzaWV1cnMgYXV0cmVzIGxhbmdhZ2VzIGNvbXBhdGlibGVzIGF2ZWMgQ29sYWIgZG9udCBSLiBQb3VyIGNyw6llciB1biBub3V2ZWF1IGRvY3VtZW50IGRvbnQgbGUgbGFuZ2FnZSBkZSBiYXNlIGVzdCBSIChQeXRob24gbmUgc2VyYSBwbHVzIHJlY29ubnUpLCBpbCBmYXV0IHV0aWxpc2VyIGxlIGxpZW4gc3VpdmFudDoNCmh0dHBzOi8vY29sYWIucmVzZWFyY2guZ29vZ2xlLmNvbS9ub3RlYm9vayNjcmVhdGU9dHJ1ZSZsYW5ndWFnZT1yDQoqICAgT24gcG91cnJhIGFsb3JzIHV0aWxpc2VyIGxlIGxhbmdhZ2UgUiBleGFjdGVtZW50IGNvbW1lIGRhbnMgUlN0dWRpbyBzYXVmIHBvdXIgbCdpbXBvcnRhdGlvbiBldCBsJ2V4cG9ydGF0aW9uIGRlIGZpY2hpZXJzIGRlIGRvbm7DqWVzLg0KKiAgIElsIGVzdCAgcG9zc2libGUgZCdhbHRlcm5lciBlbnRyZSBsZSBjb2RlIFB5dGhvbiBldCBSIGRhbnMgdW4gbcOqbWUgZG9jdW1lbnQgZW4gdXRpbGlzYW50IGRlcyAqbWFnaWNzKiAocGFja2FnZXMgUHl0aG9uIHF1aSBwZXJtZXR0ZW50IGQnZXjDqWN1dGVyIGQnYXV0cmVzIGxhbmdhZ2VzKS4NCg0KKipFbiByw6lzdW3DqToqKg0KDQoqICAgT3B0aW9uIGludMOpcmVzc2FudGUgw6AgZXhwbG9yZXIgcG91ciBzZSBmYW1pbGlhcmlzZXIgYXZlYyBsZSBsYW5nYWdlIFIgZXQgY3LDqWVyIGRlcyBkb2N1bWVudHMgZGUgcHLDqXNlbnRhdGlvbiBmYWNpbGVzIMOgIHBhcnRhZ2VyIHNhbnMgYXZvaXIgcXVvaSBxdWUgY2Ugc29pdCDDoCBpbnN0YWxsZXIsIG1haXMgcG91ciB0cmF2YWlsbGVyIGF2ZWMgZGVzIGRvbm7DqWVzLCBbUlN0dWRpb10oaHR0cHM6Ly9yc3R1ZGlvLmNvbS8pIGVzdCBkZSBsb2luIHByw6lmw6lyYWJsZS4gDQoqIEwnaW1wb3J0YXRpb24gZXQgbCdleHBvcnRhdGlvbiBkZSBmaWNoaWVycyBkZSBkb25uw6llcyBlc3QgcGx1cyBjb21wbGV4ZSBkYW5zIENvbGFiIHF1ZSBkYW5zIFJTdHVkaW8gY2FyIG7DqWNlc3NpdGUgZCd1dGlsaXNlciBkdSBjb2RlIFB5dGhvbiBldCBwZXV0IGRlbWFuZGVyIGQnaW50ZXJhZ2lyIGF2ZWMgR2l0aHViLiBSYWlzb24gcG91ciBsYXF1ZWxsZSBub3VzIHV0aWxpc2Vyb25zIGRhbnMgbGVzIGNhcHN1bGVzIHN1aXZhbnRlcyB1bmUgYmFzZSBkZSBkb25uw6llcyBkaXJlY3RlbWVudCBhY2Nlc3NpYmxlIHZpYSB1biBwYWNrYWdlIFIuIA0KDQo8YnI+DQoNCiMjIDMuIEjDqWJlcmdlbWVudCBpbmZvbnVhZ2lxdWUNCg0KIyMjIEF2YW50YWdlcw0KKiAgIEwnZW52aXJvbm5lbWVudCBkJ2V4w6ljdXRpb24gZXN0IGjDqWJlcmfDqSBzdXIgbGVzIHNlcnZldXJzIGRlIEdvb2dsZSBldCBwZXJtZXQgZG9uYyBkJ2V4w6ljdXRlciBkdSBjb2RlIHJlbGF0aXZlbWVudCBjb21wbGV4ZSBpbmTDqXBlbmRhbW1lbnQgZGUgbGEgcHVpc3NhbmNlIGRlIHNvbiBvcmRpbmF0ZXVyIGV0IHNhbnMgaW50YWxsYXRpb24gbG9jYWxlLiANCiogICBMYSBjb25uZXhpb24gw6AgbCdlbnZpcm9ubmVtZW50IGQnZXjDqWN1dGlvbiAoZW4gaGF1dCDDoCBkcm9pdGUpIHNlIGZhaXQgYXV0b21hdGlxdWVtZW50IMOgIGxhIHByZW1pw6hyZSBleMOpY3V0aW9uIGRlIGNvZGUgLT4gbGUgc2VydmV1ciBhdHRyaWJ1ZSBhbG9ycyB1bmUgY2VydGFpbmUgcXVhbnRpdMOpIGRlIG3DqW1vaXJlIHZpdmUgKFJBTSkgZXQgZGUgbcOpbW9pcmUgKGRpc3F1ZSkgcXVlIGwnb24gdm9pdCBkYW5zIGxhIGJhcnJlIGR1IGhhdXQuDQoqICAgIENvbGFiIG9mZnJlIGVuIHBsdXMgZGVzIG91dGlscyBncmF0dWl0cyBkJ2FjY8OpbMOpcmF0aW9uIGRlIHRyYWl0ZW1lbnQgZGUgY29kZSwgR1BVIGV0IFRQVSAoQ1BVIHBhciBkw6lmYXV0KSwgcHJvY2Vzc2V1cnMgcGVybWV0dGFudCBk4oCZZXjDqWN1dGVyIGR1IGNvZGUgY29tcGxleGUgcGx1cyByYXBpZGVtZW50LiANCg0KIyMjIETDqXNhdmFudGFnZXMNCiogICBBcHLDqHMgdW5lIGNlcnRhaW5lIHDDqXJpb2RlIGQnaW5hY3Rpdml0w6ksIGxhIGNvbm5leGlvbiBhdSBzZXJ2ZXVyIMOgIGRpc3RhbmNlIHNlcmEgcGVyZHVlIChwb3VyIMOpY29ub21pc2VyIGxhIGNhcGFjaXTDqSBkdSBzZXJ2ZXVyIMOgIGRpc3RhbmNlKS4gTWFpcyB1bmUgdmVyc2lvbiBQcm8gb2ZmcmUgcGx1cyBkZSBwdWlzc2FuY2UgZGUgY2FsY3VsIGV0IGRlIG3DqW1vaXJlLg0KKiBQcm9ibMOpbWF0aXF1ZSBwb3VyIGxhICoqY29uZmlkZW50aWFsaXTDqSoqLg0KDQo8YnI+DQoNCiMjIDQuIFN0cnVjdHVyZSBkJ3VuIGRvY3VtZW50IENvbGFiDQoNCioqVW4gZG9jdW1lbnQgQ29sYWIgcGV1dCBjb250ZW5pciBkZXV4IHR5cGVzIGRlIGNlbGx1bGVzOioqDQoNCmBgYA0KKyBDb2RlDQorIFRleHRlDQpgYGANCg0KPGJyPg0KDQojIyMgNC4xLiBDZWxsdWxlcyBkZSB0ZXh0ZSBlbiBmb3JtYXQgTWFya2Rvd24NCg0KKiAgIExlICoqZm9ybWF0YWdlKiogZGVzIGJsb2NzIGRlIHRleHRlIHBldXQgc2UgZmFpcmUgZGlyZWN0ZW1lbnQgYXZlYyBsZSpiYWxpc2FnZSBNYXJrZG93biBvdSBhdmVjIGxlcyBvcHRpb25zIGQnw6lkaXRpb24gZHUgYmxvYyBkZSB0ZXh0ZS4NCiogICBMYSB0YWJsZSBkZXMgbWF0acOocmVzIMOgIGdhdWNoZSBlc3QgY3LDqcOpIGVuIGZvbmN0aW9uIGRlcyBkaWZmw6lyZW50cyBuaXZlYXV4IGRlIHRpdHJlcyBldCBzb3VzLXRpdHJlcyBub3TDqWVzIGVuIG1hcmtkb3duICgjLCAjIywgIyMjKQ0KDQo8YnI+DQoNCiMjIyA0LjIuIENlbGx1bGVzIGRlIGNvZGUNCg0KYGBge3J9DQojIERvY3VtZW50ZSBzb24gY29kZSBhdmVjIGRlcyBjb21tZW50YWlyZXMgZMOpYnV0YW50IHBhciAjDQoNCiMgRXjDqWN1dGUgbGVzIGNlbGx1bGVzIGRlIGNvZGUgYXZlYyBsZSBib3V0b24gw6AgbGEgZ2F1Y2hlIG91IGF2ZWMgbGUgcmFjY291cmNpIGN0cmwgKyBlbnRyw6llIA0KIyAoZGUgbm9tYnJldXggYXV0cmVzIHJhY2NvdXJjaXMgc2UgdHJvdXZlbnQgZGFucyBsZXMgb25nbGV0cyBkdSBtZW51IGR1IGhhdXQpLg0KDQp0b3RvID0gMisyDQp0b3RvDQpgYGANCg0KPGJyPg0KDQojIyA1LiBQb3VyIGFsbGVyIHBsdXMgbG9pbg0KDQoqICAgW0JpZW52ZW51ZSBkYW5zIENvbGFib3JhdG9yeSBwYXIgR29vZ2xlXShodHRwczovL2NvbGFiLnJlc2VhcmNoLmdvb2dsZS5jb20vbm90ZWJvb2tzL2ludHJvLmlweW5iI3Njcm9sbFRvPXVmeEJtMXlSbnJ1TikNCiogICBbR2V0dGluZyBzdGFydGVkIGluIEdvb2dsZSBDb2xhYl0oaHR0cHM6Ly90b3dhcmRzZGF0YXNjaWVuY2UuY29tL2dldHRpbmctc3RhcnRlZC13aXRoLWdvb2dsZS1jb2xhYi1mMmZmZjk3ZjU5NGMpIA0KKiAgIFtEYXRhUHJvZmVzc29yXShodHRwczovL3d3dy55b3V0dWJlLmNvbS9jaGFubmVsL1VDVjhlMmc0SVdRcUs3MWJiekdERUk0USkNCg0KPGJyPg0KDQoqKioNCg==