« Accès à une BDD PostgreSQL » : différence entre les versions

m
aucun résumé des modifications
Aucun résumé des modifications
mAucun résumé des modifications
 
(3 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 58 : Ligne 58 :
</syntaxhighlight>ou pour une table comprenant des géométries:<syntaxhighlight lang="r">
</syntaxhighlight>ou pour une table comprenant des géométries:<syntaxhighlight lang="r">
sf::st_read(dsn=conn,layer="StudyArea_reach_zone")
sf::st_read(dsn=conn,layer="StudyArea_reach_zone")
</syntaxhighlight>Pour des tables plus volumineuses, il peut être pertinent de réaliser un filtre (en SQL) avant de récupérer la donnée. La fonction suivante (du package glourbi, disponible ici :https://github.com/lvaudor/glourbi ) permet de réaliser cette opération pour une table sans géométries<syntaxhighlight lang="r">
</syntaxhighlight>Pour des tables plus volumineuses, il peut être pertinent de réaliser un filtre (en SQL) avant de récupérer la donnée (voir section suivante).
 
=== Quelques fonctions utiles en R pour interagir avec la BDD glourb ===
 
Pour interagir avec la BDD glourb depuis R, quelques fonctions utiles sont disponibles dans le package glourbi, disponible ici :https://github.com/lvaudor/glourbi et installable via la commande suivante:
 
<syntaxhighlight lang="r">
devtools::install_github("lvaudor/glourbi")
</syntaxhighlight>
 
Les identifiants uniques de villes dans la BDD glourb sont sous forme de citycode (par exemple "596477_20972" pour Lyon).
 
On peut passer du nom de ville au citycode et inversement par les fonctions suivantes:
 
<syntaxhighlight lang="r">
glourbi::to_citycode("Lyon") # renverra "596477_20972"
glourbi::to_cityname("596477_20972")  # renverra "Lyon"
</syntaxhighlight>
 
 
La fonction glourbi::connect_to_glourb() permet de créer une connexion à la base de données. On peut l'appeler de cette façon (une fois que les paramètres d'accès à la BDD sont enregistrés dans .Renviron)
<syntaxhighlight lang="r">
conn=glourbi::connect_to_glourb()
</syntaxhighlight>
 
 
 
Les fonctions suivantes permettent de filtrer les lignes relatives à une ville donnée dans une table(on lui fournit un citycode en entrée).
 
Pour une table sans géométries
 
<syntaxhighlight lang="r">
get_city_tib <- function (name, thisCityCode, conn)  
get_city_tib <- function (name, thisCityCode, conn)  
{
{
Ligne 74 : Ligne 105 :
     return(result)
     return(result)
}
}
</syntaxhighlight>
On peut donc s'en servir de la manière suivante:
<syntaxhighlight lang="r">
conn=connect_to_glourb()
gsw_patches_Denver=get_city_sf(name="gsw_patches",
                              thisCityCode=glourbi::to_citycode("Denver-Aurora"),
                              conn=conn)
txt_page_Douala=get_city_tib(name="txt_page",
                            thisCityCode=glourbi::to_citycode("Douala"),
                            conn=conn)
</syntaxhighlight>
</syntaxhighlight>
[[Catégorie:Tutoriel]]
[[Catégorie:Tutoriel]]
[[Catégorie:Outils]]
[[Catégorie:Outils]]
[[Catégorie:Données]]
[[Catégorie:Données]]