En résumé
L’IDE est l’environnement de code du projet : éditeur, console, terminal, et exécution de R, Python et SQL. Les packages se déclarent dans un environnement géré qui part avec le projet, de sorte qu’un collègue retrouve les mêmes versions. En mode serveur, le code s’exécute sur le serveur ; en mode navigateur, dans votre onglet.
Coder là où sont les données
L’organisation habituelle sépare les outils : les données d’un côté, RStudio ou Jupyter de l’autre, et entre les deux des exports manuels que l’on refait à chaque mise à jour.
L’IDE de Linkr met le code dans le projet. Vos scripts accèdent aux jeux de données et aux bases par des chemins stables, ils partent dans l’export avec le reste, et ils se versionnent avec les cohortes et les tableaux de bord.
Ce n'est pas un remplaçant de RStudio
C’est un environnement de travail intégré, pas un IDE de développement logiciel. Pour une analyse, un nettoyage, une figure, il fait le travail. Pour développer un package R, restez sur vos outils.
L’écran
Quatre zones : l’explorateur de fichiers à gauche, l’éditeur au centre en onglets, le panneau de sortie en bas, et un plan à droite pour les notebooks.
Le panneau de sortie sépare les types de résultats : Console pour le texte, plus des onglets dédiés aux figures, aux tableaux et aux rendus HTML ou markdown.
Les terminaux s’ouvrent à côté : un terminal Bash, une console Python, une console R.

Réutiliser les onglets de sortie
Par défaut, chaque exécution ouvre de nouveaux onglets. L’option Réutiliser les onglets de sortie, dans les paramètres de l’IDE, fait qu’une réexécution remplace le tableau et les figures du script au lieu d’empiler. Sur un script qu’on relance cinquante fois, c’est un confort considérable.
Le thème de l’éditeur, la police et la sauvegarde automatique se règlent dans votre profil, pas ici — ce sont des préférences personnelles, pas des réglages de projet.
Les langages
| Fichier | Langage |
|---|---|
.py | Python |
.R | R |
.sql | SQL |
.Rmd, .qmd | Notebooks R Markdown |
.ipynb | Notebooks Jupyter |
Les notebooks s’exécutent cellule par cellule, avec un plan à droite qui liste les cellules et leur état.
Exécuter
Le bouton Exécuter propose quatre gestes : le fichier entier, la sélection, la ligne courante, ou — en mode serveur — le fichier en tâche de fond.
Les raccourcis clavier sont redéfinissables depuis la fenêtre des raccourcis, accessible dans la barre d’outils.
Où votre code s’exécute
C’est la différence la plus importante entre les deux modes de déploiement, et elle change ce que vous pouvez faire.
Mode serveur
De vrais processus R et Python, sur le serveur.
Tous les packages de CRAN et de PyPI, la sortie qui s’affiche au fil de l’exécution, des terminaux complets, et les tâches de fond.
Mode navigateur
R et Python compilés pour le navigateur.
Rien à installer, rien qui sorte de votre machine — mais un choix de packages restreint, la sortie en une fois à la fin, et pas de tâches de fond.
Le bandeau d’un terminal indique toujours lequel des deux vous utilisez.
Le SQL, lui, ne change pas
Une requête SQL s’exécute sur la base active dans les deux modes, avec un aperçu limité à 1 000 lignes. Il faut simplement qu’une connexion soit sélectionnée, sinon le bouton Exécuter reste inactif.
Accéder aux données du projet
Deux bibliothèques sont disponibles dans toute session Linkr, une pour chaque langage. Elles donnent les chemins du projet :
import linkr
import pandas as pd
df = pd.read_csv(linkr.datasets_dir() / "cohorte.csv")
con = linkr.connect("mimic") # une base liée au projet, en lecture seule
patients = con.sql("SELECT * FROM person LIMIT 100").df()
library(linkr)
df <- read.csv(file.path(linkr_datasets_dir(), "cohorte.csv"))
Ne déduisez jamais un dossier d'un autre
Écrire ”../datasets” ou partir du répertoire courant fonctionne — jusqu’au jour où quelqu’un déplace l’un des dossiers dans les paramètres du projet. Les trois emplacements (code, IDE, jeux de données) sont indépendants et repositionnables séparément. Utilisez toujours les accesseurs.
Ces fonctions fonctionnent aussi hors de Linkr : lancé sur votre poste, le même script retombe sur le répertoire courant, avec un avertissement. Un script écrit ici reste donc exécutable ailleurs.
Un CSV écrit dans le dossier des jeux de données devient un jeu de données
Le dossier est lu directement sur le disque : un fichier qu’un script y dépose apparaît dans Laboratoire › Jeux de données, sans étape d’import. Il faut parfois rafraîchir la liste pour le voir. Attention, le fichier doit atterrir dans ce dossier — un CSV écrit à côté reste un fichier de l’IDE.
Les environnements de packages
C’est le mécanisme qui rend une analyse reproductible, et il mérite d’être compris.
Chaque projet a un environnement Python et un environnement R. Vous y déclarez vos packages ; Linkr les installe dans un espace isolé propre au projet. La liste et les versions exactes sont versionnées avec le projet.
La conséquence est celle qu’on attend : un collègue qui importe votre projet reconstruit le même environnement, avec les mêmes versions, et obtient les mêmes résultats.
Déclarer des packages
La fenêtre Environnements liste les packages installés. On en ajoute plusieurs à la fois, séparés par des virgules, en épinglant une version au besoin : pandas, numpy==1.26.
Un état accompagne l’environnement : Prêt, Non construit, Construction… ou Échec de construction. La construction se déclenche par le bouton Reconstruire, ou automatiquement au premier lancement de code.
Une option Reconstruire automatiquement applique chaque changement immédiatement ; désactivée, les modifications attendent la construction suivante.
Éviter pip install et install.packages() dans un script
Cela fonctionne, et Linkr ne l’interdit pas — mais il vous avertit. Un package installé de cette façon est utilisable maintenant, et jusqu’à la prochaine reconstruction de l’environnement sur cette machine. Il n’est pas enregistré dans la liste versionnée : absent de l’export, absent du dépôt git, absent chez vos collègues.
L’avertissement propose un bouton pour refaire l’installation proprement dans l’environnement.
En mode navigateur, les packages sont plus limités
L’installation fonctionne, et survit à un rechargement de page. Mais les packages compilés — pandas, numpy — sont figés à la version fournie par le moteur, et l’épinglage de version n’existe pas du tout pour R.
Sessions et tâches de fond
Plusieurs sessions
Une session est un espace de travail de code indépendant, comme une seconde console dans RStudio. Utile pour faire tourner un calcul long d’un côté tout en explorant de l’autre.
Chaque session est propre à un langage : une session R n’apparaît que sur un script R.
Une session ouverte avant une reconstruction garde l'ancien environnement
Elle continue d’utiliser l’interpréteur précédent : les packages installés depuis ne sont pas importables. Linkr le signale et propose de redémarrer la session — ce qui efface ses variables.
Exécuter en tâche de fond
Exécuter le fichier en tâche de fond lance le script dans un processus neuf, suivi depuis le panneau des tâches en bas de l’écran. Vous pouvez fermer le fichier, changer de page : le calcul continue, et ses figures comme son tableau de résultat sont conservés.
Une tâche de fond ne voit pas vos variables
Elle démarre avec un espace de travail vide. C’est délibéré : un traitement long doit être reproductible, donc repartir de zéro. Pour lui transmettre des données, écrivez un fichier dans le projet.
Limites et droits
L’exécution de code est le droit le plus sensible de Linkr — il permet de faire tourner du code arbitraire sur le serveur. Il est donc distinct du droit d’afficher un tableau de bord, et réservé aux rôles d’édition.
Un administrateur peut désactiver complètement l’exécution de code sur une instance.
Les valeurs suivantes sont celles par défaut en mode serveur ; un administrateur peut les ajuster.
| Limite | Valeur par défaut |
|---|---|
| Durée d’une exécution interactive | 2 minutes |
| Durée d’une tâche de fond | 30 minutes |
| Sessions de code simultanées par utilisateur | 5 |
| Inactivité avant fermeture d’une session | 1 heure |
| Aperçu d’un tableau de résultat | 1 000 lignes |
Pour aller plus loin
- Jeux de données — ce que les scripts lisent et produisent.
- Applications web — faire tourner une application Shiny ou Streamlit depuis ce code.
- Versioning et export — ce qui part avec vos scripts.
- Collections de scripts SQL — pour du SQL destiné à être partagé.