GithubHelp home page GithubHelp logo

inseefrlab / inseelocaldata Goto Github PK

View Code? Open in Web Editor NEW
15.0 7.0 3.0 50 KB

An R client for the local data Insee's API available at https://api.insee.fr

License: GNU General Public License v3.0

R 100.00%
r api-client insee open-datasets open-data

inseelocaldata's Introduction

inseeLocalData

R-CMD-check Lifecycle: experimental CRAN status

L’API ‘Données locales’ permet d’accéder aux données localisées à la commune, diffusées sur insee.fr dans la rubrique ‘chiffres détaillés’, sous forme de cubes prédéfinis.

Les cubes prédéfinis sont ceux utilisés pour l’élaboration des tableaux et graphiques en ligne, correspondant aux sources suivantes : recensement de la population, état civil, répertoire des entreprises, fichier localisé social et fiscal et des établissements et offre d’hébergement touristique.

Ce package permet d’importer les données présentes dans l’API Données Locales dans une liste contenant 4 objets :

  • les données statistiques ;
  • les modalités de chaque variable ;
  • l’information sur la zone demandée ;
  • l’information sur la source et le jeu de données demandé.

Pour plus d’information sur le fonctionnement de l’API DDL, vous pouvez vous référer à la documentation de l’API (dans l’onglet Documentation) :

  • Service Web DDL.pdf : Document présentant les fonctionnalités du service web mis à disposition par l’Insee pour l’accès aux données locales. Il est vivement conseillé de lire cette documentation avant d’utiliser l’API.
  • Pour chaque source, un fchier Excel documentant toute l’information présente dans l’API est mis à disposition.

Installation

Vous pouvez installer la version de développement depuis GitHub en exécutant :

remotes::install_github("inseefrlab/inseeLocalData")

Utilisation

Dans les différents exemples, il est nécessaire d’avoir généré préalablement un jeton sur le catalogue des API. Ensuite plusieurs possibilités s’offrent à vous :

  • Remplacer jeton par la valeur du jeton généré sur le catalogue des API ;
  • Générer une fenêtre dans laquelle vous pouvez renseigner le jeton généré sur le catalogue des API (.rs.askForPassword(“jeton:”) ;
  • Modifier le fichier .Renviron en ajoutant une ligne jeton = “la valeur du jeton genere sur le catalogue des API”. Pour accéder facilement au fichier .Renviron, vous pouvez utiliser la commande usethis::edit_r_environ(“user”). Il est nécessaire de redémarer R après avoir fait la modification. Attention, ce paramètre doit être mis a jour à chaque fois qu’un nouveau jeton est généré.

Exemple d’utilisation simple :

Cet exemple permet d’utiliser l’API pour un croisement et un code géographique.

library(inseeLocalData)

croisement <- "NA5_B-ENTR_INDIVIDUELLE"
jeu_donnees <- "GEO2017REE2017"
nivgeo <- "COM"
codgeo <- "51108"
modalite <- "all.all"

donneesAPI <- get_dataset(jeton, jeu_donnees, croisement, modalite, nivgeo, codgeo)

donnees <- donneesAPI$donnees # pour accéder aux données
liste_code <- donneesAPI$liste_code # pour accéder aux nomenclatures
info_zone <- donneesAPI$info_zone # pour accéder aux données géographiques
source <- donneesAPI$source # pour accéder à la source

Exemple d’utilisation sur plusieurs codes géographiques :

Cet exemple permet d’obtenir un résultat pour un même croisement sur plusieurs codes géographiques. Il est nécessaire dans un premier temps de charger une liste de codes géographiques et leurs niveaux. Dans l’exemple, il s’agit du data.frame liste_code.

liste_code <- data.frame(codgeo = c("200023372","74056","74143","74266","74290"), nivgeo = c("EPCI","COM","COM","COM","COM"))
croisement <- "NA5_B-ENTR_INDIVIDUELLE"
jeu_donnees <- "GEO2017REE2017"
modalite <- "all.all"

sortie <- mapply(get_dataset,
                 jeton, jeu_donnees, croisement, 
                 modalite, liste_code$nivgeo, liste_code$codgeo,USE.NAMES = TRUE)

donnees <- NULL
info_zone <- NULL
for (i in 1:dim(sortie)[2]){
  donnees <- rbind(donnees,sortie[,i]$donnees)
  info_zone <- rbind(info_zone,sortie[,i]$info_zone)
}

liste_code <- sortie[,1]$liste_code # la liste de code est la même pour tous les codes géographiques
source <- sortie[,1]$source # la source est la même pour tous les codes géographiques

Exemple d’utilisation sur plusieurs croisements :

Cet exemple permet d’utiliser la fonction pour récupérer les données sur plusieurs croisements (sur la même zone géographique ou une zone différente). Les paramètres sont renseignés au préalable dans un data.frame ‘fichier’, ayant pour variables jeu_donnees, croisement, modalite, nivgeo et codgeo. Le paramètre temporisation est utilisé pour faire une pause de 2 secondes entre chaque requêtes afin de ne pas dépasser le quota de 30 requêtes par minute.

fichier <- 'mon fichier'
sortie <- mapply(get_dataset,
               jeton, fichier$jeu_donnees, fichier$croisement, 
               fichier$modalite, fichier$nivgeo, fichier$codgeo,2,USE.NAMES = TRUE)

# pour le 1er croisement renseigné dans le fichier en entrée
donnees <- sortie[,1]$donnees # pour accéder aux données du 1er croisement renseigné dans le fichier
liste_code <- sortie[,1]$liste_code # pour accéder aux nomenclatures du 1er croisement renseigné dans le fichier
info_zone <- sortie[,1]$info_zone # pour accéder aux données géographiques du 1er croisement renseigné dans le fichier
source <- sortie[,1]$source # pour accéder à la source du 1er croisement renseigné dans le fichier

Licence

Le code source de ce projet est publié sous licence GPL.

inseelocaldata's People

Contributors

faureme avatar py-b avatar rlesur avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

inseelocaldata's Issues

Jeton en clair dans sortie

Bonjour,

J'apprends à utiliser votre package (merci pour cette ressource !), en suivant les exemples du document PDF "Données locales", qui semble le même que dans le README ici.

Quand j'exécute cet exemple

liste_code <- data.frame(codgeo = c("200023372","74056","74143","74266","74290"),
                         nivgeo = c("EPCI","COM","COM","COM","COM")) 
croisement <- "NA5_B-ENTR_INDIVIDUELLE"
jeu_donnees <- "GEO2017REE2017" 
modalite <- "all.all"

sortie <- mapply(get_dataset,
                 jeton, jeu_donnees, croisement,
                 modalite, liste_code$nivgeo, liste_code$codgeo, USE.NAMES = TRUE)
sortie

sortie contient le jeton en clair (derrière le rectangle de masquage)
Screenshot 2021-08-04 at 14 59 30

Il n'est pas certain que ce comportement soit désiré, je vous le signale donc.

Bug dans l'utilisation du fichier FILOSOFI

library(inseeLocalData)

# exemple de requête qui fonctionne avec l'Api insee mais qui bug avec le package inseeLocalData

jeton <- "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

jeu_donnees <- "GEO2020FILO2017"
croisement <- "INDICS_FILO_DISP"
nivgeo <- "COM"
codgeo <- "51108"
modalite <- "ALL"

donneesAPI <- get_dataset(jeton, jeu_donnees, croisement, modalite, nivgeo, codgeo)
# Error in temp[, "@code"] : nombre de dimensions incorrect

Site pkgdown ?

On pourrait peut-être rajouter un site pkgdown servi par GitHub Pages ?

Problème d'utilisation de l'API lorsqu'on veut récupérer la donnée pour toutes les communes d'un département

Bonjour, tout d'abord merci pour votre package R.

Je souhaite utiliser cette API pour le département de la Dordogne (environ 505 communes), cependant je rencontre des problèmes car pour certaine des communes la donnée est non existante. Je vérifie ceci pour les différentes communes sur la console de l'api et j'ai comme code réponse : "Aucune zone ne correspond à la requête".
Lorsque je fais donc tourner mon algorithme pour mes différentes communes et lorsque j'arrive à une commune où la donnée n'est pas présente mon script s'arrête et je n'ai que le début qui est exécuté. L'erreur sous R est "Erreur dans sortie[[i]] : indice hors limites" dû au qu'il n'y a pas de réponse et que c'est égal à 0.

Est-ce que vous avez des conseils à me donner pour éviter ce problème?

Merci.

Licence

For now, the licence is GPL-3. We should consider the MIT licence.

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.