Файл Excel, открытый под Ubuntu, прочитанный R, OpenOffice - PullRequest
3 голосов
/ 09 января 2011

У меня есть куча файлов Excel, которые ежедневно обновляются на компьютере с Windows.Я переношу их на машину с Ubuntu и хочу открыть их там.В частности, я хочу читать файлы как базу данных под R.

Пару лет назад я использовал ODBC под машиной Windows для открытия файлов Excel через R. Есть ли способ, я могу сделать это с помощью Rв Ubuntu?

Я мог бы создать файл .ODB базы данных для соответствующих файлов XLS, используя OpenOffice, но я не знаю способа подключения к базе данных .ODB.У OpenOffice, похоже, есть способы подключения к базам данных, но нет возможности подключения к ODB.

Спасибо за любые потенциальные решения.

Ответы [ 4 ]

4 голосов
/ 10 января 2011

Возможно, вам удастся использовать xls2csv из apt-get install catdoc для выгрузки файлов Excel в CSV. Тогда вы можете в значительной степени подобрать свой яд в отношении того, как они обрабатываются оттуда. read.csv.sql из пакета sqldf может быть очень удобно, если вы хотите извлечь информацию с помощью операторов SQL.

2 голосов
/ 09 января 2011

Ваше решение ODBC должно работать в Linux, при условии, что вы устанавливаете пакет uniXODBC (для вашей ОС вам также может понадобиться пакет unixODBC-devel при компиляции RODBC) и пакет RODBC для R. Ссылка Габор сообщает в своем комментарии к ответу @ daroczig некоторые подробности о RODBC для Linux; обратите внимание на то, что в Linux это доступно только для чтения, и что это может привести к трудностям при настройке.

Возможно, вам лучше воспользоваться опциями, которые предлагают @daroczig и Gabor, но если вы знакомы с ODBC, возможно, вы захотите попробовать и Ubuntu.

2 голосов
/ 09 января 2011

Есть и другое решение - разместить ваши данные в базе данных, к которой имеют доступ обе ваши машины. Postgres или MySQL ничего не будут вам стоить или сервер MS-SQL, если у вас есть деньги. Похоже, вы пытаетесь сделать именно то, для чего были созданы сетевые СУБД. Вы сможете играть с данными в Excel и R на удаленных машинах. Win.

Копирование файлов Excel вокруг - это огромный сбой, который может произойти. Получить себе настоящую RDBMS. Я бы пошел на Postgres.

2 голосов
/ 09 января 2011

Я бы предложил xlsx пакет, который не имеет особых требований (например, xlsReadWrite и другие), поэтому его легко использовать в Linux.Хотя он только читает (и записывает) формат xlsx.

Другим подходом может быть использование функции read.xls в пакете gdata , которая сначала переводит файлы xls в csv и читает эти кадры данных.Вам понадобятся Perl и xls2csv , что не является большой проблемой в Linux.

...