odbcConnectExcel функционируют от пакета RODBC для R, не найденного на Ubuntu

Установка пакета RODBC на Ubuntu является чем-то вроде клуджа. Сначала я учился устанавливать следующее:

$ sudo apt-get install r-cran-rodbc

Это не было достаточно хорошо, поскольку пакет все еще искал заголовочные файлы. Я решил этот выпуск:

$ sudo apt-get install unixodbc-dev

Хороший, RODBC, установленный правильно на машине Ubuntu. Но когда я пытаюсь запустить следующий скрипт:

## import excel file from Dropbox

require("RODBC")

channel <- odbcConnectExcel("~/Dropbox/DATA/SAMPLE/petro.xls")

petro <- sqlFetch (channel, "weekly")

odbcClose(channel)

str(petro)
head(petro)

Я бросил ошибку что функция odbcConnectExcel не найденный. Я проверил случай каждой буквы, удостоверившись, что это не была простая опечатка. Нет. Затем я запустил этот тот же скрипт на установке Windows R (отличающийся путь к файлу, конечно) и работы сценария.

Какая-либо идея того, почему установка Ubuntu R не может найти функцию odbcConnectExcel и как я могу заставить это работать?

7
задан Milktrader 6 August 2010 в 18:09
поделиться

2 ответа

Эта функциональность доступна там, где доступен Excel. Другими словами: не на Ubuntu.

Для справки, из руководства R Data Import / Export manual (с моим выделением):

4.3.2 Package RODBC

Package RODBC на CRAN предоставляет интерфейс к источникам баз данных поддерживающим интерфейс ODBC. Это очень широко доступен, и позволяет один и тот же код R для доступа к различным системам баз данных. RODBC работает на Unix/Linux, Windows и Mac OS X, и почти все системы баз данных обеспечивают поддержку ODBC. Мы протестировали Microsoft SQL Server, Access, MySQL, PostgreSQL, Oracle и IBM DB2 под Windows и MySQL, Oracle, PostgreSQL и SQLite на Linux.

ODBC - это клиент-серверная система, и мы с удовольствием подключались к СУБД работающей на сервере Unix с Windows, и наоборот.

В Windows поддержка ODBC обычно установлена, и текущие версии доступны по адресу http://www.microsoft.com/data/odbc/ as как часть MDAC. На Unix/Linux вам понадобится менеджер драйверов ODBC, например unixODBC (http://www.unixODBC.org) или iOBDC (http://www.iODBC.org: он предустановлен в Mac OS X) и установленный драйвер для вашей базы данных системы.

Windows предоставляет драйверы не только для СУБД, но и для Excel (.xls) электронных таблиц, файлов DBase (.dbf) и даже текстовых файлов. (Названные приложения не нужно устанавливать. Какие форматы файлов поддерживаются, зависит от версии драйверов.) Существуют версии для Excel 2007 и Access 2007 (перейдите по адресу http://download.microsoft.com, and найдите Office ODBC, что приведет к откроется файл AccessDatabaseEngine.exe), а именно `2007 Office System Driver`.

6
ответ дан 6 December 2019 в 22:59
поделиться

Я обнаружил, что RODBC - настоящая проблема в Ubuntu. Может быть, это потому, что я не знаю правильных заклинаний, но я переключился на RJDBC, и мне с ним повезло больше. Как обсуждается здесь .

Как говорит Дирк, это не решит вашу проблему с Excel. Для написания Excel мне очень повезло с пакетом WriteXLS. В Ubuntu я обнаружил, что это довольно легко настроить. У меня был Perl и многие пакеты, которые уже были установлены, и мне пришлось просто установить Text :: CSV_XS, который я установил с помощью диспетчера пакетов с графическим интерфейсом. Причина, по которой мне нравится WriteXLS, - это возможность записывать фреймы данных на разные листы в файле Excel. И теперь, когда я смотрю на ваш вопрос, я вижу, что вы хотите ЧИТАТЬ файлы Excel, а не ЗАПИСАТЬ их. Ад. WriteXLS этого не делает. Придерживайтесь gdata, как сказал Дирк в своих комментариях:

gdata on CRAN , и вам понадобится функция read.xls ():

read.xls("//path//to/excelfile.xls", sheet = 1, verbose=FALSE, pattern, ...,
method=c("csv","tsv","tab"), perl="perl")

вам может потребоваться запустить installXLSXsupport , который устанавливает необходимые модули Perl.

read.xls ожидает номеров листов, а не имен. Параметр метода - это просто промежуточный формат файла. Если в ваших данных есть вкладки, не используйте вкладку в качестве промежуточного формата. То же самое для запятых и csv.

5
ответ дан 6 December 2019 в 22:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: