Как ускорилась функция cor ()? - PullRequest
6 голосов
/ 17 октября 2011

Немного не по теме, но мне было интересно, кто-нибудь может сказать мне, когда и как была улучшена функция cor () в последнее время? Это намного, намного быстрее, чем я помню, и теперь сопоставимо по скорости с функцией rcorr в пакете HMisc, которая была моей альтернативной корреляционной функцией для больших матриц.

Спасибо за все предложения: После некоторого исследования разница в скорости объясняется использованием флага use = "pairwise", а не алгоритмическим изменением. При использовании этой опции разница в скорости составляет ~ 8 раз.

Скорость для cor () на R из версии 2.4 - 2.13 сопоставима.

Спасибо

Иэн

Ответы [ 2 ]

5 голосов
/ 17 октября 2011

http://cran.r -project.org / src / base / NEWS.html содержит сводную информацию о последних изменениях и поясняет их актуальность. Иногда это полезно для отслеживания связанных изменений в других функциях, которые могут повлиять на то, что вы делаете. Быстрый поиск для cor() показывает только пару вещей, однако:

2.13.0

Методы корреляции рангов для cor () и cov () с использованием use = "complete.obs" вычислили ранги перед удалением пропущенных значений, тогда как документация подразумевала, что неполные случаи были удалены первыми. (https://bugs.R -project.org / bugzilla3 / show_bug.cgi? Id = 14488PR # 14488)

2.11.0

cor () и cov () теперь проверяют на неправильное использование с нечисловыми аргументами, такими как отчет об ошибках https://bugs.R -project.org / bugzilla3 / show_bug.cgi? Id = 14207PR # 14207 .

3 голосов
/ 17 октября 2011

Трудно сказать, не зная, какую версию вы используете, но похоже, что в 2.14 произойдут существенные изменения, и только незначительные изменения между 2.13 и предыдущими версиями вернутся как минимум до 2.10.Сравните их, чтобы увидеть текущие изменения в 2.14:

2.13 код: https://svn.r -project.org / R / branch / R-2-13-branch / src / main / cov.c

2,14 код: https://svn.r -project.org / R / branch / R-2-14-branch / src / main / cov.c

...