2009-07-22 2 views
29

Для R. существует как минимум два разреженных пакета матриц. Я изучаю их, потому что я работаю с наборами данных, которые являются слишком большими и разреженными, чтобы соответствовать памяти с плотным представлением. Я хочу основные линейные алгоритмы, а также возможность легко писать код C для работы с ними. Какая библиотека является самой зрелой и лучшей в использовании?Самый зрелый разреженный пакет матриц для R?

До сих пор я нашел

  • Matrix который имеет много обратных зависимостей, подразумевая, что это наиболее часто используемый один.
  • SparseM который не имеет столько обратных депо.
  • Различные библиотеки графов, вероятно, имеют свои (неявные) версии этого; например igraph и network (последний является частью statnet). Они слишком специализированы для моих нужд.

У кого-нибудь есть опыт?

От поиска около RSeek.org немного, Matrix пакет кажется наиболее часто упоминаемым. Я часто думаю о CRAN Task Views как довольно авторитетном, а Multivariate Task View упоминает Matrix и SparseM.

+2

Я думаю, что есть 'спам' тоже. В помощи говорится: «Различия с SparseM/Matrix: (1) мы поддерживаем (по существу) один разреженный матричный формат, (2) на основе прозрачной и простой структуры (-ов), (3) с учетом расчетов MCMC в рамках GMRF. (4) S3 и S4 подобны «совместимы» ... и быстро. «Реверс зависит от: CollocInfer, esd4all, поля, решетка, плотность, решетка, кривая, pencopula, rworldmap, splm –

+0

Голосование для закрытия как инструмент rec. –

ответ

21

Матрица является наиболее распространенной и также была принята стандартная установка R (начиная с 2.9.0), поэтому должна быть широко доступна.

Матрица в базе: https://stat.ethz.ch/pipermail/r-announce/2009/000499.html

7

По моему опыту, Matrix является наилучшим образом поддержанным и наиболее зрелым из упомянутых вами пакетов. Его архитектура C также должна быть достаточно хорошо открытой и относительно простой в работе.

1

журнал (х) на разреженную матрицу плохая идея, так как журнал (0) не определено, и большинство элементов разреженной матрицы равны нулю.

Если вы хотели бы получить журнал ненулевых элементов, попробуйте преобразовать его в разреженное разрезное представление и записать журнал этих значений.

+1

oops. Я имел в виду log (1 + x). Думаю, это не имеет никакого смысла. да, я делаю это с триплетным представлением, что имеет смысл. –