Рекомендации для базы данных с R

Я использую R для запуска моделирования с использованием данных временных рядов. Я использую массивы для хранения данных, но для хранения данных на промежуточных этапах требуется меньше памяти, чтобы документировать процесс. Я не программист, поэтому я ищу что-то относительно легко настраиваемое на нескольких платформах, если это возможно (Windows, Mac, Linux). Мне также нужно иметь возможность напрямую обращаться к базе данных из R, так как изучение другого языка сейчас невозможно. В идеале, я хотел бы иметь возможность читать и писать часто в базу данных способом, подобным массиву, хотя я не знаю, насколько это реально. Я с радостью пожертвую скоростью для удобства использования, но я готов работать над изучением решений с открытым исходным кодом. Любые предложения будут оценены.

Ответ 1

Мне также нужно иметь возможность напрямую вызовите базу данных из R

Я предлагаю настроить MySQL с помощью интерфейса RMySQL.

Как только соединение с БД открыто, вы можете запросить базу данных и получить данные в R, например:

# Run an SQL statement by creating first a resultSet object
rs <- dbSendQuery(con, statement = paste(
                      "SELECT w.laser_id, w.wavelength, p.cut_off",
                      "FROM WL w, PURGE P",
                      "WHERE w.laser_id = p.laser_id",
                      "SORT BY w.laser_id")
# we now fetch records from the resultSet into a data.frame
data <- fetch(rs, n = -1)   # extract all rows

RMySQL: интерфейс R для базы данных MySQL

Интерфейс базы данных и драйвер MySQL для R. Эта версия соответствует определение интерфейса базы данных как реализован в пакете DBI 0.2-2.

База данных MySQL:

Доступно для всех платформ, которые вы указали в вопросе, и многое другое, загрузите здесь.

Ответ 2

Комментарии:

  • R хорош в этом, как язык программирования с данными, есть много интерфейсов
  • Существует целый manual, посвященный импорту/экспорту данных, и он имеет в реляционных базах данных, поэтому начните там.
  • R имеет широко используемый пакет DBI, который обеспечивает унифицированный интерфейс для многих бэкэндмов, в том числе SQLite, MySQL, PostgreSQL, Oracle,... Используйте это, возможно, с RSQLite, чтобы быстро что-то ускорить. После этого вы можете снова переключать серверы.
  • Существует также RODBC, но я считаю ODBC утомительным для работы.
  • R также имеет специализированный вариант в пакете TSdbi Пола Гилберта, который привносит абстракцию DBI в базы данных временных рядов. Он также поддерживает несколько бэкэндов.
  • Пакет data.table был написан для этого и очень быстро работает с индексацией и агрегацией.

Ответ 3

Вам действительно нужно решение для базы данных для вашей цели? Вы говорите, что хотите "решение для хранения данных на промежуточных этапах" - как просто сохранить массив данных на диск в требуемые моменты времени?

Изменить: чтобы можно было получить информацию, вы можете вставлять метаинформацию, например. пробный индекс и/или временную метку в имени файла. Затем вы можете найти и загрузить файл, используя правильное имя файла.

Ответ 4

Вы также можете посмотреть ff пакет.