Coder Social home page Coder Social logo

inseefrlab / doremifasol Goto Github PK

View Code? Open in Web Editor NEW
29.0 7.0 11.0 180.18 MB

Téléchargement des données sur le site de l'Insee

Home Page: https://InseeFrLab.github.io/DoReMIFaSol/

License: MIT License

R 100.00%
insee r rstats rstats-package r-package api-client sirene api open-data

doremifasol's Introduction

Récupérer et utiliser les données de l'Insee avec R/ Get and use Insee's data with R

Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. build-artifacts R-CMD-check License:MIT Coverage status CRAN status

Français

De quoi s'agit-il ?

Le package doremifasol (Données en R Mises à disposition par l’Insee et Facilement Sollicitables) permet d'importer facilement dans R des données mises à disposition sur le site de l'Insee.

Il offre deux fonctionnalités principales :

  • télécharger et importer dans R des fichiers disponibles sur insee.fr (Base Permanente des Équipements, Recensement de Population, Filosofi...) ;
  • requêter l'API Sirene et recupérer les résultats dans R.

L'objectif du package est de rendre transparentes les différentes tâches à réaliser avant de pouvoir traiter les données : recherche sur le site, téléchargement, décompression, import dans R...

Idéal pour pratiquer son solfège en R sur des données françaises !

Pour installer le package :

# install.packages("remotes")
remotes::install_github("InseeFrLab/doremifasol", build_vignettes = TRUE)

Quelles données sont disponibles ?

Pour trouver quelles données le package peut aller récupérer sur le site de l'Insee, on peut commencer par explorer interactivement les données disponibles.

Cela permet notamment de connaître les identifiants (noms courts) et millésimes qui seront à spécifier aux fonctions de téléchargement.

Le package a vocation à intégrer de nouveaux jeux de données dès qu'ils sont mis en ligne. Ce processus n'est toutefois pas automatisé. Voir la section Contribuer pour suggérer l'ajout de nouvelles données.

Exemples d'usages

Les données du recensement de population

Le premier exemple concerne les données du recensement librement accessibles sur le site de l'Insee. Ce sont des données très volumineuses, et sauf à disposer de capacités de calcul conséquentes, il n'est en général pas possible de charger l'ensemble des données en mémoire. Pour cela, le package doremifasol permet de sélectionner les colonnes que l'on souhaite charger en mémoire, une fois le fichier téléchargé. Ainsi, un utilisateur qui voudrait connaître par commune le nombre de résidences principales en 2016 aura besoin des variables COMMUNE - le code commune - et CATL - la catégorie d'occupation du logement - de la table logement :

donnees_rp <- telechargerDonnees("RP_LOGEMENT", date = 2016, vars = c("COMMUNE", "IPONDL", "CATL"))

Filosofi

L'Insee met également à disposition un certain nombre d'indicateurs relatifs à la distribution des revenus et à la pauvreté au niveau communal, voire infra-communal. Ces données sont mises à jour chaque année à partir des sources fiscales ; il s'agit de la source "Filosofi". Ainsi, il est possible de télécharger ces indicateurs au niveau de la commune, pour l'ensemble des ménages par exemple, grâce à la syntaxe suivante :

donnees_filosofi <- telechargerDonnees("FILOSOFI_DISP_COM_ENS", date = 2017)

Ces données sont déclinées pour différentes catégories de ménages, et de la même manière peuvent être téléchargées grâce au package doremifasol.

Estimations localisées d'emploi en France

De la même manière que les données fiscales permettent de fournir des statistiques à un niveau géographique fin, d'autres sources administratives permettent de construire des estimations du nombre d'emplois présents dans les différentes communes du territoire français. Il s'agit des Estimations d'Emploi Localisées, qu'il est possible de récupérer en R grâce à la syntaxe suivante :

donnees_estel <- telechargerDonnees("ESTEL_T201", date = 2018)

Requêter une API REST : le répertoire d'entreprises Sirene

Supposons que l'on cherche maintenant à récupérer l'ensemble des établissements rattachés à une unité légale créée le 1er janvier 2020 ; pour cela, on peut par exemple envoyer une requête sur l'API REST Sirene de l'Insee. Pour cela, il faut au préalable avoir configuré un accès à l'API REST de l'Insee et passer en variables d'environnement les données d'identification. La procédure est expliquée par exemple ici. Une fois cela réalisé, la requête peut se faire facilement au travers de doremifasol de la manière suivante :

etablissements <- telechargerDonnees("SIRENE_SIRET", 
                                     argsApi = list(q = "dateCreationUniteLegale:2020-01-01"))

On fait alors face à une liste contenant plusieurs data.frame (6 au total) :

  • une table contenant l'ensemble des informations sur les établissements en question ;
  • deux tables contenant l'ensemble des informations sur les unités légales de ces établissements, en distinguant les unités dites purgées des autres ;
  • deux tables contenant les informations sur l'adresse de ces établissements ;
  • une table détaillant les informations historisées de ces établissements - c'est-à-dire les différentes modifications qu'ont connues les établissements entre leur création et la date de référence - ici par défaut la date de téléchargement.

Contribuer

Agent du Service Statistique Public, ou utilisateur des données mises à disposition sur le site de l'Insee, vous constatez qu'il manque dans la liste des données référencées dans doremifasol une source de données que vous utilisez ? Vous pouvez contribuer à doremifasol, sans nécessairement coder en R. Pour plus de détais, vous pouvez consulter la documentation à ce sujet.

English

What is it about?

doremifasol (data with R made available by Insee and easily retrievable in French) is a R package mainly aiming at showing off data available on Insee's website (Insee, for the French Institute for Statistics and Economic Studies), helping the user to put them on stage and extract the information they carry. So it is about analysing data, creating maps, quantifying phenomenons and in general using the data without the painful effort to retrieve them on the website, as well as import them into R's memory. The name of the package stands for the five first notes of music, and pushing the metaphore, underlines its aim at helping the users to easily pratice their solfège in R.

To install the package:

# install.packages("remotes")
remotes::install_github("InseeFrLab/doremifasol", build_vignettes = TRUE)

Which data is available?

You may begin by exploring interactively which data the package can fetch on Insee website with.

This is also a way to find out the identifiers (short names) and years to be passed as parameters to the downloading functions.

New data sources can be added to the package as soon as they are available online. However, this process is not automated. See the Contributing section for suggesting package administrators to add new sources.

A few examples

Census data

A first example of use of the package is related to the rolling Census implemented in France on a yearly basis. It concerns voluminous data that prove to be hard to load into R's memory on most of the machines. To adress the data size issue, the package doremifasol makes it possible to resize the data and only imports columns that are of interest for the user. Assume that one is interested in knowing the number of main residences for each municipality on the French territory in 2016, that one will only need three variables from the table logement (dwelling in French), COMMUNE the zip code, IPONDL the weight of the dwelling and CATL indicating the status of occupation:

donnees_rp <- telechargerDonnees("RP_LOGEMENT", date = 2016, vars = c("COMMUNE", "IPONDL", "CATL"))

Data on income distribution and poverty

Should you now be interested in data on income distribution, you may download information on income percentiles and poverty rate at the municipality level based on tax data, also knwow as 'Filosofi'. Those data are update every year. You may fetch these data for year 2017 for instance thanks to the following command:

donnees_filosofi <- telechargerDonnees("FILOSOFI_DISP_COM_ENS", date = 2017)

Data on employment

Tax data are very convenient to carry out information on income distribution at municipality level, so are data coming from registers on employment.

Requesting an API REST on the firms' register Sirene

Contributing

As non French-speaking user of Insee's website, you are using data that turn out not to be listed there in the package doremifasol. You may notify the maintainer of this project and even more, could you code in R or not. Please report to the dedicated documentation.

doremifasol's People

Contributors

ddotta avatar genevieve-toubol avatar gilles13 avatar jgaffuri avatar linogaliana avatar malta974 avatar oliviermeslin avatar pierre-lamarche avatar py-b avatar rlesur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

doremifasol's Issues

Warning "L'extension du fichier diffère du type de fichier."

fileext <- sub(".+\\.(\\w+)$", "\\1", fichierAImporter)
if (fileext != telechargementFichier$type)
warning("L'extension du fichier diff\u00e8re du type de fichier.")

Ce warning est déclenché par exemple par telechargerDonnees("COG_COMMUNE", 2018).

À quoi sert-il, vu que les traitements suivants sont les mêmes que si l'extension ne différait pas et que la résultat est bien celui attendu ?

Erreur après exécution de telechargerDonnees()

Après lancement de la commande ci-après, message généré, avec erreur :

Sélection automatique des données les plus récentes (date = 2017).
Downloading: 390 MB Aucun répertoire d'importation n'est défini. Les données ont été téléchargées par défaut dans le dossier: C:\Users\THIERR~1.ZOR\AppData\Local\Temp\Rtmps5kdYz
Warning in system2(unzip, args, stdout = NULL, stderr = NULL, invisible = TRUE) :
'"unzip"' not found
Error in chargerDonnees(telechargerFichier(donnees, date, telDir, argsApi, :
Le fichier de données est introuvable.

Le fichier RP2017_LOGEMT_csv.zip a bien été téléchargé dans mon tempdir(), mais le unzip a échoué.

Cause probable, le ZIP contient 2 fichiers : le CSV des données et le CSV des metadonnées

Ligne lancée :

donnees_rp <- telechargerDonnees("RP_LOGEMENT", date = "dernier",
                                 vars = c("COMMUNE", "IPONDL", "CATL"))

Version de {doremifasol} : 0.5.1

Quelles sources de données ajouter ?

Comme promis dans le projet UtilitR, j'ouvre cette issue pour discuter de la manière dont nous pourrions contribuer à l'enrichissement des bases de données disponibles dans doremifasol.

Côté entreprises (que je suis sensé représenter), je verrai bien des tableaux issus d'ESANE comme par exemple :

Siret des prédécesseurs et des successeurs (API)

Suite aux échanges par mail avec Guillaume G. de Nantes, je me demande si on ne pourrait pas intégrer facilement le requêtage sur les liens de succesion d'un Siret, il faudrait ajouter une entrée au json des sources :

    {
        "nom": "SIRENE_SIRET_LIENS",
        "libelle": "Données du répertoire Sirène depuis 1973, liens de succession établissement",
        "collection": "SIRENE",
        "lien": "https://api.insee.fr/entreprises/sirene/siret/liensSuccession",
        "type": "json",
        "zip": false,
        "big_zip": false,
        "api_rest": true
    }

et adapter l'import dans R des fichiers json.

Peut-être c'est moins simple que ça n'en a l'air ?

erreur 400 avec sirets_successeurs (problème tri)

L'exemple de la doc de sirets_successeurs ne fonctionne plus

sirets_successeurs(c("30070230500040", "30137492200120", "30082187300019"))
Downloading: 160 B     Error in value[[3L]](cond) : 
  Erreur :Erreur 400 : Par défaut, les résultats sont triés par siretEtablissementPredecesseur.
La seule autre possibilité est le tri par siretEtablissementSuccesseur :
saisir alors tri=successeur

Nouveaux millésimes du COG à intégrer

Salut,
Super boulot avec ce package ! Très utile !
Juste ça doit être galère pour vous de faire les MAJ des millésimes pour chaque source.
Par exemple, le COG s'arrête en 2019 dans {DoReMIFaSol} alors que les données dispos sur Insee.fr vont jusqu'en 2022...
Et je comprends tout à fait que ça soit hyper dur à suivre en terme de maintenance.
Problème dont vous avez déjà discuté dans #65 sur la BPE
En attendant une automatisation et quand j'aurai un peu de temps, je pourrais soumettre une PR sur le COG pour aider un peu, si vous voulez

Bonjour, pourriez-vous ajouter cette source svp : https://www.insee.fr/fr/statistiques/6456153?sommaire=6456166

Vous souhaitez proposer une une nouvelle source et ses caractéristiques, afin que les administrateurs l'intègrent au package ?

Inclure a minima l'url sur insee.fr à partir de laquelle on peut télécharger le fichier correspondant.

Par exemple : https://www.insee.fr/fr/statistiques/2115011

Autres informations

Les informations suivantes étant également nécessaires, compléter la liste suivante faciletera la tâche des administrateurs du package (remplacer les valeurs exemples par les valeurs de la nouvelle source).

"date_ref": "2019-01-01",
"lien": "https://www.insee.fr/fr/statistiques/fichier/3568638/bpe19_ensemble_xy_csv.zip",
"zip": true,
"type": "csv",
"fichier_donnees": "bpe19_ensemble_xy.csv",
"fichier_meta": "varmod_bpe19_ensemble_xy.csv"

Signification des champs :

  • date_ref : la date (éventuelle) de référence des données
  • lien : l'URL pour le téléchargement des données
  • zip : les données sont-elles zippées ou non (true ou false)
  • type : le format des données (csv, xls, xlsx), à l'intérieur de l'archive si "zip": true
  • fichier_donnees : le nom du fichier de données, dans un éventuel zip
  • fichier_meta : le nom du fichier descriptif des données, dans un éventuel zip

Ajouter un commentaire dans la fonction telechargerDonnees

La fonction telechargerDonnees peut télécharger les données soit dans un dossier spécifié par l'argument teldir, soit dans un dossier par défaut. Si on se sert de teldir, il est facile de savoir où sont les données zip et xls, mais dans le cas par défaut, il n'est pas évident de savoir où elles sont.

Je me dis qu'il pourrait être utile que la fonction retourne dans ce un commentaire du genre: print(paste0("Aucun répertoire d'importation n'est défini. Les données ont été téléchargées par défaut dans le dossier: ", teldir_par_défaut)).

Est-ce pertinent?

Question sur l'emboitement des fonctions de téléchargement dans doremifasol

Je commence à réfléchir à l'implémentation en python 🐍 de votre approche

J'ai donc une question pour être sûr de pas rater un éléments dans votre approche:

  • La liste des données est disponible dans un fichier JSON. C'est super d'avoir ce registre, je pense pouvoir l'utiliser direct en python (où la manipulaion des json est bien mieux faite qu'en R).
  • Vous transformez ça en rda (je me passerai de cette étape en python)
  • Vous avez des fonctions dans utile.R pour récupérer les infos voulues (url, md5...)
  • Vous utilisez telechargerFichier et proposez une fonction haut niveau telechargerDonnees pour les utilisateurs

Je ne manque pas une étape importante ?

ajouter la source dans l'objet R

Pour assurer une traçabilité des données, ajouter dans l'objet R les attributs suivants ?

attr(res, "source") <- "Institut National de la Statistique et des Études Économiques (Insee)"
attr(res, "url") <- "https://www.insee.fr/fr/statistiques/<id>" # spécifique à chaque fichier
attr(res, "conditions_utilisation") <- "https://www.insee.fr/fr/information/1300614"

Pour le dernier lien, j'ai cherché rapidement, peut-être y a-t-il mieux ailleurs sur le site ?
D'autres idées ? Je pensais pas exemple aux règles de confidentialité, mais c'est variable en fonction des sources.

Shapefiles issus de l'IGN

Je me demandais si les shapefiles des limites adminstratives rentraient dans le périmètre de doremifasol.

Ils sont disponibles sur le site de l'ign ici et peuvent être associés aux données de doremifasol via le code commune, par exemple.

Bref, doremifasol concerne-t-il exclusivement insee.fr ?

Comment consulter les variables des bases de données ?

Dans les exemples donnés sur la fonction telechargerDonnees() :

# fichiers sur insee.fr
bpe_ens_2019 <- telechargerDonnees(donnees = "BPE_ENS")
rp_log <- telechargerDonnees("RP_LOGEMENT", date = "2016", vars = c("COMMUNE", "IPONDL", "CATL"))

... il serait pratique de pouvoir consulter le plus facilement possible les variables présentes dans les bases.
Après un petit tour de la documentation mise à disposition sur insee.fr, je me rends compte que les dictionnaires de variables sont en général stockés dans des fichiers pdf joints aux pagex html ce qui doit rendre leur récupération très pénible.

J'ai pensé à modifier cette ligne pour ajouter une colonne dans le tableau renvoyé par donnees_dispo() ?
Néanmoins dans le json je me rends compte que l'élément label_col n'est pas disponible systématiquement dans tous les cas et que de toutes façons, cela serait moche dans l'affichage de la table avec des listes de variables dans des cellules d'un tableau...

Alors peut-être qu'une piste pour s'affranchir du problème de maintenance des variables et pour avoir un peu plus d'infos dans le tableau du pkgdown, ce serait de rajouter (quand il existe) un lien vers la page du dictionnaire d'Insee.fr

Pour les 2 exemples de la doc, cela a l'air de pouvoir se déduire des liens vers les zip déjà présents dans le fichier json :
Pour la BPE :
https://www.insee.fr/fr/statistiques/fichier/3568629/bpe20_ensemble_csv.zip
deviendrait :
https://www.insee.fr/fr/statistiques/3568629?sommaire=3568656#dictionnaire

Le schéma est le même pour le RP Logement :
https://www.insee.fr/fr/statistiques/fichier/4229099/RP2016_LOGEMT_csv.zip
deviendrait :
https://www.insee.fr/fr/statistiques/4229099?sommaire=4171558#dictionnaire

Intégration des indicateurs conjoncturels d'activité

Sur insee.fr on peut trouver toute une série d'indicateurs conjoncturels d'activités (ICA)

L'URL est assez bien structuré et permet donc de récupérer facilement ces données. Par exemple, au hasard, pour récupérer la série 010539343 (celle-ci). L'URL est le suivant:

https://www.insee.fr/fr/statistiques/serie/telecharger/csv/010539343?ordre=antechronologique&transposition=donneescolonne&periodeDebut=1&anneeDebut=1999&periodeFin=6&anneeFin=2021

On peut donc identifier la structure suivante:

https://www.insee.fr/fr/statistiques/serie/telecharger/csv/{IDENTIFIANT}?ordre=antechronologique&transposition=donneescolonne&periodeDebut=1&anneeDebut={ANNEE_DEBUT}&periodeFin=6&anneeFin={ANNEE_FIN}

qui permet de requêter facilement plusieurs séries avec une fonction aux arguments bien faits.

Dans pynsee, tous les éléments sont en place pour récupérer ces données, en modularisant le code ci-dessous. Je pense que c'est pareil pour doremifasol

import os
import requests
from pynsee.download import download_pb, unzip_pb
 
download_pb("https://www.insee.fr/fr/statistiques/serie/telecharger/csv/010539344?ordre=antechronologique&transposition=donneescolonne&periodeDebut=1&anneeDebut=1999&periodeFin=6&anneeFin=2021",fname = "data.zip")
 
unzip_pb("data.zip", "ica", desc="Extracting")
 
os.listdir()
os.listdir("./ica")

J'ai donc deux questions:

  • est-ce que vous êtes partants pour intégrer ces sources dans doremifasol ?
  • A votre avis, quelle est la meilleure manière d'intégrer ces sources ? Doit-on intégrer ça au JSON ou faire une fonction qui plugge des arguments dans un url, sans faire les vérifications (md5 checksum...) faites pour les autres sources de données ?

Proposer les données sous forme de data.trame

Je voudrais illustrer dans les fiches tidyverse et data.table de la doc UtilitR comment on convertit un data.frame vers un tibble ou un data.table (avec as_tibble et as.data.table). Il serait donc préférable que les données du package soient uniquement des data.frames de base, et non des tibble. Est-ce possible à moindre coût?

échec builds Windows (Pandoc ?)

Le check ne passe plus sous Windows depuis que j'ai ajouté la vignette. 😞

L'erreur semble venir de Pandoc :

* creating vignettes ... ERROR

--- re-building 'donnees_dispo.Rmd' using rmarkdown

Warning in engine$weave(file, quiet = quiet, encoding = enc) :

  Pandoc (>= 1.12.3) not available. Falling back to R Markdown v1.

Quitting from lines 11-12 (donnees_dispo.Rmd) 

Ça passe en revanche sur Ubuntu et sur mon poste Windows (où j'ai Pandoc ‘2.9.2’).

Erreur 429 sur requête retournant une seule page

Il se peut que le nombre de requêtes de l'application soit proche de la limite autorisée avant l'appel à telechargerFichier. Dans ce cas, même si la requête ne retourne qu'une seule page de résultats, le programme peut planter.

Un message d'erreur objet de type 'externalptr' non indiçable peut être un indice d'une erreur 429 (too many requests) qui n'a pas été gérée correctement.

On peut simuler ce comportement en utilisant sirets_successeurs sur un grand nombre de sirets :

sirets_successeurs(as.character(0:2040))

2040 = 30 requêtes par min pour un compte lambda * 68 sirets par groupe dans sirets_successeurs

Requête API 404

Gérer les cas où la requête ne renvoie aucun résultat (code 404).

Exemple :

telechargerDonnees(
  "SIRENE_SIRET_LIENS",
  argsApi = list(q = "siretEtablissementPredecesseur:32957439600019")
)

Bug de la fonction telechargerDonnees sur Mac

Je ne parviens pas à utiliser la fonction telechargerDonnees sur mon Mac. Il semble y avoir un bug dans le chemin par défaut:

doremifasol::telechargerDonnees("ESTEL_T201", date = "2015")

aboutit à cette erreur, dans laquelle il semble qu'il y a un / de trop:

Erreur : `path` does not exist: ‘/var/folders/wc/0dkp4vf165dfthcsz0ybw3t00000gn/T//RtmpH2UsXf/T201.xls’

J'ai ensuite essayé de préciser le dossier:

doremifasol::telechargerDonnees("ESTEL_T201", date = "2015", telDir = "/Users/Olivier/Downloads")

Et j'obtiens l'erreur:

Erreur : `path` does not exist: ‘/Users/Olivier/Downloads/T201.xls’

Quelles infos supplémentaires puis-je fournir pour aider au débuggage?

BPE n'est plus disponible à cet url

Il semblerait que la BPE ait changé d'URL

doremifasol::telechargerDonnees("BPE_ENS")
essai de l'URL 'https://www.insee.fr/fr/statistiques/fichier/3568629/bpe19_ensemble_csv.zip'
Error in download.file(url = caract$lien, destfile = nomFichier) : 
  impossible d'ouvrir l'URL 'https://www.insee.fr/fr/statistiques/fichier/3568629/bpe19_ensemble_csv.zip'
De plus : Warning message:
In download.file(url = caract$lien, destfile = nomFichier) :
  cannot open URL 'https://www.insee.fr/fr/statistiques/fichier/3568629/bpe19_ensemble_csv.zip': HTTP status was '500 '

re-téléchargement des fichiers

Pour éviter que les données soient re-téléchargées inutilement, le package regarde actuellement si un fichier portant le même nom existe dans telDir.

Pour peaufiner un peu le truc, j'ai deux idées (pas forcément incompatibles) :

  • ajouter un paramètre force (=FALSE par défaut), qui permette à l'utilisateur de télécharger quand même ;
  • s'assurer de l'intégrité du fichier avec une vérification par somme de contrôle. Pour cela, il faudrait stocker dans liste_donnees les hash correspondant aux fichiers dispo sur insee.fr. On s'assure que le fichier n'a pas été altéré par l'utilisateur entre le 1er et le 2e téléchargement, mais pas que le fichier sur insee.fr n'a pas changé !

J'ai testé le calcul d'une somme de contrôle sur le fichier RP2016_LOGEMT_csv.zip (380 Mo) avec tools::md5sum. C'est quasi-instantané. La difficulté est plutôt de précalculer les hash qu'on va stocker dans liste_donnees. Il faudrait télécharger à nouveau tous les fichiers (ou les récupérer par un autre moyen...).

Un avis ? 🙂

type de fichier de données non conforme dans les métadonnées

Bonjour, merci beaucoup pour ce package très utile à tous!

Il semblerait que le fichier de données contenu dans le zip suivant soit un fichier xlsx et non un fichier xls, ceci fait ensuite planter mon téléchargement :
https://www.insee.fr/fr/statistiques/fichier/1893255/base_naissances_2017.zip

Il faudrait donc corriger le fichier de métadonnées.

remotes::install_github("InseeFrLab/doremifasol", build_vignettes = TRUE)

library(doremifasol)

data <- telechargerDonnees("NAISSANCES_COM_0817", date = 2017)
data <- telechargerDonnees("NAISSANCES_COM_0817")

Merci d'avance et bravo pour ces outils!

Stocker la liste des données en json et pas en csv

En y réfléchissant, je me dis que ça aurait plus de sens de stocker la liste sur un format qui offrirait plus de flexibilité sur la structure, et donc sur le contenu des métadonnées qu'on pourrait y mettre. En particulier définition des noms de colonnes, de leur type plus facile.
Je vais créer une branche expérimentale en ce sens.

telechargerDonnees : s'assurer de la présence des packages suggérés avant de télécharger

J'ai essayé l'exemple de la doc :
bpe_ens_2018 <- telechargerDonnees(donnees = "BPE_ENS")

Les données se sont téléchargées mais ça a planté car je n'avais pas readr.
Error in loadNamespace(name) : there is no package called ‘readr’

Donc le téléchargement s'est fait pour rien.

2 idées de solution :

  • vérifier la présence du package avant de lancer le téléchargement. Un truc du style :
if (!requireNamepace("readr", quietly = TRUE)) {
  stop("nécessite le package `readr`")
}
  • les mettre dans Imports plutôt que Suggests (sûrement too much si l'utilisateur ne veut pas utiliser la fonction téléchargement)

Nouvelle source - Fichier des naissances - juillet 2023

Vous souhaitez proposer une une nouvelle source et ses caractéristiques, afin que les administrateurs l'intègrent au package ?

Inclure a minima l'url sur insee.fr à partir de laquelle on peut télécharger le fichier correspondant.

Par exemple : https://www.insee.fr/fr/statistiques/2115011

Autres informations

Les informations suivantes étant également nécessaires, compléter la liste suivante faciletera la tâche des administrateurs du package (remplacer les valeurs exemples par les valeurs de la nouvelle source).

"date_ref": "2023-09-07",
"lien": "https://www.insee.fr/fr/statistiques/fichier/7665393/naissances_juil_2023.xlsx",
"zip": false,
"type": "xlsx",
"fichier_donnees": "naissances_juil_2023.xlsx",
"fichier_meta": ""

Signification des champs :

  • date_ref : la date (éventuelle) de référence des données
  • lien : l'URL pour le téléchargement des données
  • zip : les données sont-elles zippées ou non (true ou false)
  • type : le format des données (csv, xls, xlsx), à l'intérieur de l'archive si "zip": true
  • fichier_donnees : le nom du fichier de données, dans un éventuel zip
  • fichier_meta : le nom du fichier descriptif des données, dans un éventuel zip

Travis

Avec usethis::use_travis, tu as un template pour l'intégration continue directement utilisable pour faire un check d'un 📦 R.

J'ai voulu le créer sur mon fork mais ça initie travis sur mon compte donc je pense que tu dois le faire toi-même.

Proposer par défaut une sauvegarde des données téléchargées entre sessions

Dans la version actuelle, lorsqu'on télécharge un jeu de données, il est nécessaire de spécifier l'argument telDir sans quoi il faut télécharger les données à chaque nouvelle session R.

Je me demandais s'il ne serait pas plus pratique pour l'utilisateur de modifier le comportement par défaut en sauvegardant de façon permanente les fichiers téléchargés, par exemple en utilisant le package rappdirs.

encodage en générant liste_donnees

En écrivant des tests unitaires pour liste_donnees, j'ai détecté une anomalie ligne 1292 (valeur manquante pour $api_rest).

J'ai donc modifié le csv et relancé data-raw/liste_donnees.R. Le problème est que l'encodage des caractères accentués n'est plus bon dans les rda générés.

J'ai raté un truc, @pierre-lamarche ?

données intégrées au package

J'ai une petite interrogation sur les données figurant en dur dans le package. Le README ne mentionne pas leur existence.

Sont-elles là uniquement en tant qu'exemples de ce que produisent les fonctions de téléchargement ?
Ou bien surtout pour éviter de retélécharger plusieurs fois ? D'ailleurs que se passera-t-il quand ces données auront un millésime plus récent ? J'imagine que l'idée n'est pas d'accumuler les jeux de données, faute de quoi la taille du package va enfler.

Nombre de requêtes max par minutes

Selon le type de compte sur api.insee.fr, il y aurait 2 cadences max de requêtes :

  • 30 requêtes par min max
  • 500 requêtes par min max

Intégrer ce paramètre dans le package ?

Ajout d'un example d'utilisation de l'argument vars dans la documentation, dans le cas du requêtage SIRENE

Bonjour,
Tout d'abord, merci beaucoup pour cet excellent package qui me sert beaucoup!

Lors du requêtage de l'API Sirene via la fonction telechargerDonnees(), en utilisant l'argument vars, je reçois le message d'erreur suivant :

In chargerDonnees(telechargerFichier(donnees, date, telDir, argsApi, :
  Il n’est pas possible de filtrer les variables chargées en mémoire sur le format JSON pour le moment.

Je ne sais pas si je renseigne mal cet argument ou si il s'agit d'un problème alternatif, mais lorsque je le retire, ce warning disparaît.
J'ai également crée un dossier de téléchargement de données puis l'ai configuré avec option(doremifasol.telDir = ...) mais rien n'y fait.

Pourriez-vous y jeter un oeil et éventuellement rajouter une information dans la documentation s'il vous plaît?

Bien à vous

Grégoire Mansio

Voici un exemple:

if(!require(tidyverse)) install.packages("tidyverse")
if(!require(remotes)) install.packages("remotes")
if(!require(usethis)) install.packages("usethis")
if(!require(httpuv)) install.packages("httpuv")
if(!require(apinsee)) remotes::install_github("inseefrlab/apinsee")
library(httr)
library(jsonlite)

# Rtools is required
if(!require(doremifasol)) remotes::install_github("inseefrlab/doremifasol", build_vignettes = TRUE) 


token <- apinsee::insee_auth() # necessite une clé et un secret du consommateur sur l'api insee, tous deux à enregistrer dans l'environnement sous le format suivant:
#INSEE_APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxx
#INSEE_APP_SECRET=yyyyyyyyyyyyyyyyyyyyyyy

#Pour ce faire on peut par exemple utiliser usethis ci dessous
#usethis::edit_r_environ("user") 
# Il faut redémarrer la session suite à l'enregistrement de ces credentials dans le fichier environnement


set_config(config(token = token))


## Test de requêtage ciblé

# Requête
Plomberie_4322A <- telechargerDonnees("SIRENE_SIREN", 
                                     argsApi = list(q ="periode(activitePrincipaleUniteLegale:43.22A AND caractereEmployeurUniteLegale:O AND economieSocialeSolidaireUniteLegale:O)"),
                                     vars = c("sirene")
                                     )

logo new look

Pour échanger sur le logo nouvelle version.

Ce qu'a fait @linogaliana me semble être une bonne base de départ. 👍

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.