Подтвердить что ты не робот

Как читать данные из файлов базы данных Microsoft Access.accdb в R?

Документация RODBC предполагает, что это возможно, но я не уверен, как читать данные из файла Microsoft Access (новый формат .accdb) с помощью этот пакет в R (на Debian GNU/Linux). Виньетка говорит о драйверах, но я не совсем понимаю, как я могу видеть, какие драйверы установлены, и, в частности, если у меня установлен драйвер для доступа к этим файлам .accdb.

Какой код вы используете для чтения данных из .accdb файлов? И, пожалуйста, укажите, на какой платформе вы находитесь, и если вам нужно установить специальный драйвер.

4b9b3361

Ответ 1

Название страницы, которую вы связали, RODBC: доступ к базе данных ODBC, может вводить в заблуждение. Доступ не означает MS Access; в том, что доступ к названию означает подключение. RODBC является менеджером ODBC для R. Он служит посредником для обеспечения связи между R и драйвером ODBC для вашей целевой базы данных. Поэтому для GNU/Linux вам все равно нужен драйвер ODBC для файлов базы данных MS Access... RODBC не предоставляет его.

Тем не менее, я не знаю никаких бесплатных (как в свободе и/или пиве) драйверов MS Access ODBC для Linux. Easysoft продает один, но это не дешево. Также могут быть предложения от других поставщиков; Я не смотрел.

Может быть проще использовать машину Windows для экспорта ACCDB в формат, который может использоваться R. Или запустите R в Windows вместо Linux.

Ответ 2

Чтобы импортировать файл Microsoft Access после выпуска 2007 года (.accdb) в R, вы можете использовать пакет RODBC.

Для файла .accdb с именем "foo.accdb" со следующими таблицами "bar" и "bin", хранящиеся на рабочем столе компьютера John Doe:

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

Ответ 3

Вам понадобятся драйверы для подключения Access к интерфейсу ODBC. Они должны быть в вашей системе, если у вас установлен Access. Если нет, загрузите Access Database Engine из Microsoft. Затем создайте свое подключение к данным в ODBC (вам может потребоваться запустить 32-разрядный c:\windows\sysWOW64\odbcad32.exe при работе с 64-разрядной Windows). Обратите внимание, что этот метод не работает в GNU/Linux. Время выполнения - только Windows, о чем упоминается @HansUp ниже.

Что касается кода, вы, вероятно, начинаете с odbcConnect(dsn, uid = "", pwd = "", ...), и документация может помочь с деталями.

Ответ 4

ODBC - это немного система "подключи и молясь", соединяющая разные кирпичи.

RODBC позволяет вам получить что-то от поставщика ODBC в R. Вам по-прежнему нужен (из-за отсутствия лучшего слова) драйвер ODBC-экспорта этой системы баз данных. Что вам нужно на вашей ОС - поэтому я думаю, что с помощью комбинации Access-in-Linux вам не повезло. Windows, только.

Людям удалось получить доступ к SQL Server с использованием драйверов FreeTDS (для протокола TDS, лежащего в основе Sybase, и с помощью ранней лицензии также MS-SQL), но это, безусловно, борьба, чтобы добиться этого.

Ответ 5

> 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

Ответ 6

Альтернативой прямому доступу к нему может быть облегчение экспорта данных из MS Access. По крайней мере, последний MS Access позволяет сохранять различные этапы экспорта. Можно просто быстро запустить экспорт различных запросов/таблиц.

Я знаю, что это не отвечает на вопрос, но может быть обходным путем, если вы не запускаете RODBC.