Stata, Jupyter et Quarto: la solution nbstata

Notebook
Quarto
Jupyter
Auteur·rice
Affiliation

Marc Thévenin

Ined

Date de publication

30 août 2023

Résumé

putdoc, puthtml… Oubliez! Depuis plusieurs années il est possible d’exécuter un programme Stata avec le notebook Jupyter grâce au noyau Stata_kernel de K.Barron ou plus récemment avec la librairie usine pystata (version 17). Du côté de RStudio on pouvait également exécuter un programme Stata dans un document Rmarkdown, avec le package statamarkdown. Mais l’exécution de Stata se faisant en mode batch. En 2022 avec l’arrivée du Quarto, et le nouveau noyau Jupyter nbstata de Tim Huegerich, on dispose d’une solution particulièrement efficace d’édition pour ce logiciel.


Avant de débuter ce tutoriel, concernant les avantages et les inconvénients d’utiliser le notebook Jupyter:

Installation de Jupyter

Une fiche est déjà disponible [Lien]. A l’Ined l’installation est largement facilité avec l’outil applined développé par le service informatique.

Pour vérifier que tout est bien installé:

  • Vérification pour Python: dans Stata, exécuter python query, et éventuellement tester une opération simple: python: 1+1
  • Vérification pour Jupyter: pour lancer le notebook, dans l’invite de commande windows (cmd dans la barre de recherche), exécuter jupyter notebook

Installation de nbstata

Les étapes sont bien décrites dans le document de Tim Huegerich.

Dans l’invite de commande windows exécuter successivement

pip install nbstata

Puis à minima:

python -m nbstata.install

Optionnellement, si on souhaite récupérer la couleur syntaxique

pip install jupyterlab_stata_highlight2

Utilisation de nbstata dans un notebook Jupyter

  • Dans new on choisit le kernel nbstata
  • Une fois le noyau chargé on peut exécuté dans les cellules une plusieurs lignes de programme.
  • Si on souhaite écrire du texte, on change le format de la cellule qui est par défaut code.
  • Pour afficher l’aide par exemple, on utilise un magik: %help nom_commande. La liste des magiks est donnée dans la documentation.
  • Contrairement à l’exécution de Stata dans son interface, les macro temporaires (local) sont conservées en mémoire d’une cellule à une autre.
  • On peut enregistrer l’ensemble des cellules en mode code dans un fichier .do

En résumé:


Remarque: on peut installer le notebook Jupyter dans VScode. On peut donc l’utiliser comme interface pour documenter un programme au lieu d’un navigateur Web. En revanche, il ne sera pas possible de récupérer un .do à partir des commandes exécuter dans les cellules.

Utilisation de nbstata dans un document Quarto

  • On indique de le header de la page (yaml) l’utilisation de jupyter et du noyau nbstata
---
title: "Exécution de Stata sous Quarto avec nbstata

jupyter: nbstata
---
  • Pour le bloc de codes sans option: on indique qu’on utilise stata: ```{stata}
  • Pour le bloc de codes avec option(s), on remplace #| (R,Python) par *|:
*| echo: false/true
*| eval: false/true

* Programme Stata

sysuse auto
tx scat price mpg