Langage R liaison base de données

Installation de WAMP : https://www.wampserver.com/ ou MAMP : https://www.mamp.info/en/downloads/

Supposons un accès à un fichier « sante.accdb » contenant une table data de cette nature :

id date_analyse      glycemie
1   2022-03-17       10
2   2022-03-18       20

On peut interroger en langage R en SQL vers Microsoft Accces.

En premier lieu il faut installer le module pour R pour accéder à Accces:

install.packages("RODBC")
library(RODBC)

Une fois l’installation réalisée de ce module, on peut ouvrir le fichier Accès et intérroger en SQL la base de données:

con <- odbcConnectExcel2007("C:/Users/utilisateur/Documents/sante.accdb")
resultat <- sqlQuery(con,"select date_analyse from data")
print( resultat )

On peut faire de manière similaire sur MySQL avec des commandes similaires, en premier lieu en installant le module pour la liaison avec le serveur de base de données MySQL :

install.packages("RMySQL")
library(RMySQL)

L’accès à un serveur de base de données Mysql suppose plusieurs informations techniques, l’adresse du serveur de base de données (ici 127.0.0.1), un compte sur cette base de données (ici root), un mot de passe correspondant à ce compte (ici «  » pour indiquer mot de passe vide), un port de base de données (ici et par défaut 3306) et enfin une base de données (ici sante)

DB <- dbConnect(MySQL(), user="root", host="127.0.0.1", password="",dbname="sante" , port=3306)

Une fois la connexion réalisée, on peut lister les tables dans cette base de données sante.

dbListTables(DB)

Et enfin poser des questions en SQL

resultat <- dbGetQuery(DB, "SELECT * FROM data")
print( resultat )

Test unitaire en R

Installation de l’outil de test

install.packages("testthat")
library(testthat)

Test d’une valeur égale via :

expect_equal( 95 , dbGetQuery(DB, "SELECT max(age) from import")[,1] )

Pas de réponse si tout va bien, mais si on test ceci :

expect_equal( 92 , dbGetQuery(DB, "SELECT max(age) from import")[,1] )
Error: 92 not equal to dbGetQuery(DB, "SELECT max(age) from import")[, 1].
1/1 mismatches
[1] 92 - 95 == -3

A propos Pierre Jean

Ingénieur de Recherche CERIS Centre d'Enseignement et de Recherche en Informatique et Systèmes IMT Mines Alès UMR Euromov DHM Plus de détails sur Pierre JEAN
Ce contenu a été publié dans Développement. Vous pouvez le mettre en favoris avec ce permalien.