Пакеты R являются расширениями к R статистического языка программирования . Пакеты R содержат код, данные и документацию в стандартизированном формате сбора, который может быть установлен пользователями R, обычно через централизованный репозиторий программного обеспечения, такой как CRAN (Comprehensive R Archive Network). [1] [2] Большое количество пакетов, доступных для R, а также простота их установки и использования были названы основным фактором, способствовавшим широкому распространению этого языка в науке о данных . [3] [4] [5] [6]
По сравнению с библиотеками на других языках программирования, пакеты R должны соответствовать относительно строгой спецификации. [3] Запись R Extensions руководство [7] определяет стандартную структура каталогов для исходного кода R, данных, документации и метаданных пакета, что позволяет устанавливать их и загрузить с помощью встроенного АиРа управления пакетов инструментов. [3] Пакеты, распространяемые через CRAN, должны соответствовать дополнительным стандартам. [3] [8] По словам Джона Чемберса , хотя эти требования «предъявляют значительные требования» к разработчикам пакетов, они улучшают удобство использования.и долгосрочная стабильность пакетов для конечных пользователей. [3]
Хранилища [ править ]
Комплексная сеть архивов R (CRAN) [ править ]
Comprehensive R Archive Network (CRAN) - это центральный репозиторий программного обеспечения R , поддерживаемый R Foundation. [9] Он содержит архив последней и предыдущей версий дистрибутива R, документации и дополнительных пакетов R. [10] Он включает как пакеты с исходным кодом, так и предварительно скомпилированные двоичные файлы для Windows и macOS . [11] По состоянию на ноябрь 2020 [Обновить]года доступно более 16 000 пакетов. [12] CRAN был создан Куртом Хорником и Фридрихом Лейшем в 1997 году, [13] [14]с именем распараллеливания других систем раннего упаковки , такие как TeX «s CTAN (выпущен в 1992) и Perl » ы CPAN (выпущен в 1995 году). [15] По состоянию на 2021 год [Обновить]он по-прежнему поддерживается Хорником и командой волонтеров. [9] Главный сайт находится в Венском университете экономики и бизнеса и зеркалируется на серверах по всему миру. [10]
Страница «Представления задач» (список тем) на веб-сайте CRAN [16] перечисляет широкий спектр задач (в таких областях, как финансы, генетика, высокопроизводительные вычисления, машинное обучение, получение медицинских изображений, социальные науки и пространственная статистика), для которых Доступны пакеты R. Другой способ просмотра пакетов CRAN предоставляется Metacran [17], который также поддерживает списки популярных, наиболее загружаемых, популярных или наиболее зависимых пакетов.
Количество пакетов CRAN росло в геометрической прогрессии в течение многих лет [18], и по состоянию на 2018 год [Обновить]в среднем ежедневно производилась 21 отправка новых или обновленных пакетов. [6] Поскольку каждая заявка вручную проверяется небольшой группой специалистов по обслуживанию CRAN, многие из которых, по словам основного разработчика R Питера Далгаарда , «приближаются к пенсионному возрасту», есть опасения, что эта система не является устойчивой в долгосрочной перспективе. . [6] Рост CRAN выявил ограничения его инфраструктуры управления зависимостями , в частности тот факт, что он предполагает, что зависимости всегда относятся к последней версии пакета, а это означает, что новые выпуски пакетов CRAN всегда должны бытьобратно совместимы , [19] и что пакеты CRAN не могут иметь зависимости, не относящиеся к CRAN. [20] Это также привело к опасениям по поводу снижения качества упаковки. [21]
MRAN и диспетчер пакетов RStudio [ править ]
Сеть приложений Microsoft R (MRAN) является зеркалом CRAN, поддерживаемого Microsoft и основанного на последующем распространении R компании, Microsoft R Open (ранее Revolution R Open). [22] Он также включает архив ежедневных снимков CRAN, известный как «Машина времени CRAN», который позволяет пользователям MRAN обходить ограничения CRAN на управление версиями зависимостей, устанавливая фиксированный набор версий пакета R через контрольную точку пакета. [23] [24]
RStudio Package Manager - аналогичный инструмент, созданный RStudio , который помимо снимков CRAN включает архив пакетов R из Bioconductor и пакетов Python из индекса пакетов Python . [25] Он также распространяет предварительно скомпилированные двоичные пакеты для Linux (в CRAN включены только двоичные файлы Windows и macOS). [26]
Другие репозитории [ править ]
Проект Bioconductor предоставляет пакеты R для анализа геномных данных. Сюда входят инструменты объектно-ориентированной обработки и анализа данных из Affymetrix , микрочипа кДНК и высокопроизводительные методы секвенирования нового поколения . [27]
R-Forge, [28] является центральной платформой для совместной разработки пакетов R, программного обеспечения, связанного с R, и проектов. R-Forge также содержит множество неопубликованных бета-пакетов и разрабатываемых версий пакетов CRAN.
Базовые и рекомендуемые пакеты [ править ]
R распространяется с четырнадцатью «базовыми пакетами»: base, compiler, datasets, grDevices, graphics, grid, methods, parallel, splines, stats, stats4, tcltk, tools и utils. [29]
Кроме того, есть пятнадцать «рекомендуемых пакетов» от CRAN, которые включены в двоичные дистрибутивы R: KernSmooth, MASS, Matrix, boot, class, cluster, codetools, foreign, lattice, mgcv, nlme, nnet, rpart, пространственный и выживание. [29]
Другие пакеты [ править ]
Группа пакетов под названием Tidyverse , которую можно рассматривать как «диалект языка R», становится все более популярной в экосистеме R. По состоянию на 13 июня 2020 года Metacran [17] перечислил 7 из 8 основных пакетов Tidyverse в списке наиболее загружаемых пакетов R. Группа пакетов стремится предоставить связный набор функций для решения общих задач науки о данных, включая импорт, очистку, преобразование и визуализацию данных (особенно с пакетом ggplot2 ).
Пакеты R Infrastructure [30] поддерживают кодирование и разработку пакетов R, и по состоянию на 2021-05-04 Metacran [17] перечисляет 16 из этих пакетов среди 25 наиболее загружаемых пакетов.
Другие пакеты R включают datasets.load, написанный Bastiaan Quast , который добавляет графический интерфейс и интерфейс командной строки для загрузки наборов данных из установленных пакетов. [31]
См. Также [ править ]
- Tidyverse
- ggplot2
- вязальщица
Ссылки [ править ]
- ^ Хорник, Курт (2020-02-20). «Часто задаваемые вопросы по R» . Комплексная R архивной сети . 7.29: В чем разница между пакетом и библиотекой? . Дата обращения 2 ноября 2020 .CS1 maint: location (link)
- ^ Уикхэм, Хэдли; Брайан, Дженнифер. "Вступление". Пакеты R (2-е изд.).
- ^ а б в г д Чемберс, Джон М. (2020). «S, R и Data Science» . R Journal . 12 (1): 462–476. ISSN 2073-4859 .
- ^ Вэнс, Эшли (2009-01-06). «Аналитики данных, увлеченные силой R» . Нью-Йорк Таймс .
- ^ Tippmann, Sylvia (2014-12-29). «Инструменты программирования: Приключения с R» . Новости природы . 517 (7532): 109. DOI : 10.1038 / 517109a .
- ^ a b c Тим, Ник (2018). «Поколение R» . Значение . 15 (4): 14–19. DOI : 10.1111 / j.1740-9713.2018.01169.x . ISSN 1740-9713 .
- ^ R Основная команда. «Написание расширений R» . Комплексная R архивной сети . Проверено 2 ноября 2020 .CS1 maint: uses authors parameter (link)
- ^ Специалисты по обслуживанию репозитория CRAN. «Политика репозитория CRAN» . Комплексная R архивной сети . Проверено 2 ноября 2020 .CS1 maint: uses authors parameter (link)
- ^ a b Специалисты по обслуживанию репозитория CRAN. «Политика репозитория CRAN» . Комплексная R архивной сети . R проект . Проверено 20 ноября 2020 года .
- ^ a b Хорник, Курт (20.02.2020). «Часто задаваемые вопросы по R» . Комплексная R архивной сети . 2.1: Что такое CRAN ?: R Project . Проверено 20 ноября 2020 года .CS1 maint: location (link)
- ^ Специалисты по обслуживанию репозитория CRAN. «Всеобъемлющая сеть архивов R» . R проект . Проверено 20 ноября 2020 года .
- ^ Специалисты по обслуживанию репозитория CRAN. «CRAN - Дополнительные пакеты» . Комплексная R архивной сети . КРАН . Проверено 20 ноября 2020 года .
- ^ Хорник, Курт (1997-04-23). «ОБЪЯВЛЕНИЕ: КРАН» . r-announce (Список рассылки) . Проверено 20 ноября 2020 года .
- ^ Тим, Ник (2018). «Поколение R» . Значение . 15 (4): 14–19. DOI : 10.1111 / j.1740-9713.2018.01169.x . ISSN 1740-9713 .
- ^ Фицджеральд, Брайан (2016-02-09). "Обзор систем языковых пакетов программирования" . Некоторые вещи очевидны . Дата обращения 4 мая 2021 .
- ^ "Представления задач CRAN" . cran.r-project.org . Проверено 16 сентября 2018 .
- ^ a b c "Метакран" .
- ↑ 21 апреля, Мэтт Эсей в Open Source on; 2016; Пт, 12:32. «Экспоненциальный рост сообщества R с открытым исходным кодом угрожает коммерческим конкурентам» . TechRepublic . Проверено 2 ноября 2020 .CS1 maint: numeric names: authors list (link)
- ^ Оомс Йерун (2013). «Возможные направления улучшения управления версиями зависимостей в R» . R Journal . 5 (1): 197–206. ISSN 2073-4859 .
- ^ Decan, A .; Mens, T .; Клаас, М .; Грожан, П. (2016). «Когда GitHub встречает CRAN: анализ проблем зависимости пакетов между репозиториями» . 23-я Международная конференция по анализу, развитию и реинжинирингу программного обеспечения (SANER), 2016 г., IEEE . 1 : 493–504. DOI : 10,1109 / SANER.2016.12 .
- ^ Хорник, Курт (2012). "Слишком много пакетов R?" . Австрийский статистический журнал . 41 (1): 59–66–59–66. DOI : 10,17713 / ajs.v41i1.188 . ISSN 1026-597X .
- ^ «Добро пожаловать в MRAN» . Microsoft R сетевых приложений . Microsoft . Дата обращения 4 мая 2021 .
- ^ «Воспроизводимость: использование фиксированных снимков репозитория CRAN» . Microsoft R сетевых приложений . Microsoft . Дата обращения 4 мая 2021 .
- ^ Смит, Дэвид (22.05.2019). «Снимки MRAN, и вы» . Революции . Revolution Analytics . Дата обращения 4 мая 2021 .
- ^ Лопп, Шон (2020-12-07). «Диспетчер пакетов RStudio 1.2.0 - Биокондуктор и PyPI» . Блог RStudio . RStudio . Дата обращения 4 мая 2021 .
- ^ Лопп, Шон (2020-07-01). «Анонсирование общедоступного диспетчера пакетов и версии 1.1.6» . Блог RStudio . RStudio . Дата обращения 4 мая 2021 .
- ^ Хубер, Вт; Кэри, VJ; Джентльмен, Р. Андерс, S; Карлсон, М; Карвалью, Б.С.; Браво, ХК; Дэвис, S; Гатто, L; Гирке, Т; Готтардо, Р. Hahne, F; Hansen, KD; Иризарри, РА; Лоуренс, М.; Люби меня; Макдональд, Дж; Обенчейн, В; Олесь, АК; Pagès, H; Рейес, А; Шеннон, П; Смит, Г.К .; Тененбаум, Д; Waldron, L; Морган, М. (2015). «Организация высокопроизводительного геномного анализа с помощью Bioconductor» . Методы природы . Издательская группа "Природа" . 12 (2): 115–121. DOI : 10.1038 / nmeth.3252 . PMC 4509590 . PMID 25633503 .
- ^ "R-Forge: Добро пожаловать" . Проверено 16 сентября 2018 .
- ^ a b Хорник, Курт (20.02.2020). «Часто задаваемые вопросы по R» . Комплексная R архивной сети . 5.1: Какие дополнительные пакеты существуют для R? . Дата обращения 2 ноября 2020 .CS1 maint: location (link)
- ^ «Инфраструктура R» .
- ^ Ло, Майкл (2017-01-05). «Пакеты R, которые стоит посмотреть» . Аналитика данных & R . Архивировано 03 января 2020 года . Проверено 1 мая 2020 .[ самостоятельно опубликованный источник ]
Дальнейшее чтение [ править ]
- Клаас, М .; Mens, T .; Грожан, П. (2014). «О ремонтопригодности пакетов CRAN» . Неделя развития программного обеспечения 2014 г. - Конференция IEEE по обслуживанию, реинжинирингу и обратному проектированию программного обеспечения (CSMR-WCRE) : 308–312. DOI : 10,1109 / CSMR-WCRE.2014.6747183 .
- Декан, Александр; Mens, Tom; Клаас, Мелик; Грожан, Филипп (07.09.2015). «О разработке и распространении R-пакетов: эмпирический анализ экосистемы R» . Труды Европейской конференции 2015 г. по семинарам по архитектуре программного обеспечения . ECSAW '15. Дубровник, Цавтат, Хорватия: Ассоциация вычислительной техники: 1–6. DOI : 10.1145 / 2797433.2797476 . ISBN 978-1-4503-3393-1.
- Фокс, Джон (2009). «Аспекты социальной организации и траектории проекта R» . R Journal . 1 (2): 5–13. ISSN 2073-4859 .
- Фокс, Джон; Leanage, Allison (12 сентября 2016 г.). "R и журнал статистического программного обеспечения" . Журнал статистического программного обеспечения . 73 (1): 1–13. DOI : 10,18637 / jss.v073.i02 . ISSN 1548-7660 .
- Плакидас, Константинос; Шалл, Дэниел; Здун, Уве (2017). «Эволюция программной экосистемы R: метрики, отношения и их влияние на качества» . Журнал систем и программного обеспечения . 132 : 119–146. DOI : 10.1016 / j.jss.2017.06.095 . ISSN 0164-1212 .
Внешние ссылки [ править ]
- Комплексная сеть архивов R (CRAN)
- METACRAN , каталог пакетов R
- CRAN Task Views , список пакетов CRAN по темам