19 votes

Comment lire les données des fichiers de la base de données Microsoft Access .accdb dans R ?

El RODBC La documentation suggère que c'est possible, mais je ne suis pas sûr de savoir comment lire des données à partir d'un Microsoft Access (le nouveau système de gestion des données). .accdb ) avec ce paquet dans R (sur Debian GNU/Linux). La vignette parle de pilotes, mais je ne comprends pas bien comment je peux voir quels pilotes sont installés, et en particulier, si j'ai un pilote installé pour pouvoir accéder à ces .accdb des fichiers.

Quel code utilisez-vous pour lire les données de .accdb fichiers ? Et veuillez indiquer sur quelle plate-forme vous êtes et si vous avez dû installer un pilote spécial.

9voto

coip Points 487

Pour importer un fichier Microsoft Access (.accdb) postérieur à 2007 dans R, vous pouvez utiliser la commande RODBC paquet.

Pour un fichier .accdb appelé "foo.accdb" avec les tables suivantes, "bar" et "bin", stockées sur le bureau de l'ordinateur de Jean Dupont :

library(RODBC)    #loads the RODBC package
dta <- odbcConnectAccess2007("C:/Users/JohnDoe/Desktop/foo.accdb")   #specifies the file path
df1 <- sqlFetch(dta, "bar")   #loads the table called 'bar' in the original Access file
df2 <- sqlFetch(dta, "bin")   #loads the table called 'bin' in the original Access file

5voto

HansUp Points 53234

Le titre de la page que vous avez liée, RODBC : Accès aux bases de données ODBC peut induire en erreur. Access ne signifie pas MS Access ; dans ce titre, access signifie connectivité. RODBC est un gestionnaire ODBC pour R. Il sert de médiateur pour assurer la communication entre R et le pilote ODBC de votre base de données cible. Ainsi, pour GNU/Linux, vous aurez toujours besoin d'un pilote ODBC pour les fichiers de base de données MS Access ... RODBC n'en fournit pas.

Cependant, je ne connais pas de pilotes ODBC MS Access gratuits (comme dans la liberté et/ou la bière) pour Linux. Easysoft vend un mais ce n'est pas bon marché. Il y a peut-être aussi des offres d'autres vendeurs, je n'ai pas regardé.

Il peut être plus facile d'utiliser une machine Windows pour exporter votre ACCDB dans un format que R peut utiliser. Ou bien exécutez R sur Windows au lieu de Linux.

3voto

Patrick Points 606

Vous aurez besoin des pilotes pour connecter Access à l'interface ODBC. Ceux-ci devraient se trouver sur votre système si Access est installé. Si ce n'est pas le cas, téléchargez le Moteur de base de données Access de Microsoft. Ensuite, créez votre connexion de données dans ODBC (Vous devrez peut-être exécuter le programme 32-bit c:\windows\sysWOW64\odbcad32.exe si vous utilisez Windows 64 bits). Notez que cette méthode ne fonctionne pas sous GNU/Linux. Les runtimes sont uniquement Windows, comme mentionné par @HansUp ci-dessous.

En ce qui concerne le code, vous commencerez probablement par odbcConnect(dsn, uid = "", pwd = "", ...) et la documentation peut vous aider pour les détails.

3voto

Dirk Eddelbuettel Points 134700

ODBC est une sorte de système "plug and pray" permettant de connecter différentes briques.

RODBC vous permet d'obtenir quelque chose d'un fournisseur ODBC dans R. Ce dont vous avez encore besoin est le (par manque d'un meilleur mot) pilote d'exportation ODBC du système de base de données en question. Ce dont vous avez besoin sur votre OS --- donc je pense qu'avec la combinaison Access-into-Linux vous n'avez pas de chance. Windows uniquement.

Des personnes ont réussi à accéder à SQL Server en utilisant les pilotes FreeTDS (pour le protocole TDS sous-jacent à Sybase et, via une licence antérieure, également à MS-SQL) mais il faut souvent se battre pour que cela fonctionne.

2voto

user3251747 Points 21
library(RODBC)
db<-file.path("student.accdb")
channel<-odbcConnectAccess2007(db)
data<-sqlFetch(channel,"stud")

data
  ID  Name M1 M2 M3 M4 M5 Result
1  7 Radha 85 65 92 50 62   Pass
2  8  Reka 75 85 96 75 85   Pass

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X