Парадигмы | Мультипарадигма : массив , объектно-ориентированный , императивный , функциональный , процедурный , рефлексивный. |
---|---|
Разработано | Росс Ихака и Роберт Джентльмен |
Разработчик | Основная команда R [1] |
Впервые появился | Август 1993 г . [2] |
Стабильный выпуск | 4.0.5 [3] / 31 марта 2021 г . |
Печатная дисциплина | Динамический |
Лицензия | GNU GPL v2 [4] |
Расширения имени файла |
|
Веб-сайт | www |
Под влиянием | |
Под влиянием | |
Юлия [5] | |
|
R - это язык программирования и бесплатная программная среда для статистических вычислений и графики, поддерживаемая R Foundation for Statistical Computing. [6] Язык R широко используется статистиками и специалистами по обработке данных для разработки статистического программного обеспечения [7] и анализа данных . [8] Опросы, исследования данных и исследования баз данных научной литературы показывают существенный рост популярности; [9] по состоянию на апрель 2021 года [Обновить]R занимает 16-е место в индексе TIOBE., показатель популярности языков программирования. [10]
Официальная программная среда R - это пакет GNU . [11] Он написан в основном на C , Fortran и сам R [12] (таким образом, он частично размещается на собственном хостинге ) и находится в свободном доступе под Стандартной общественной лицензией GNU . Предварительно скомпилированные исполняемые файлы предоставляются для различных операционных систем . Хотя R имеет интерфейс командной строки , существует несколько сторонних графических пользовательских интерфейсов , таких как RStudio , интегрированная среда разработки и Jupyter , интерфейс ноутбука.. [13] [14]
История [ править ]
R - это реализация языка программирования S в сочетании с семантикой лексической области видимости , вдохновленная Scheme . [15] S был создан Джоном Чемберсом в 1976 году в Bell Labs . Коммерческая версия S предлагалась как S-PLUS, начиная с 1988 года.
Большая часть кода, написанного для S-PLUS, выполняется в R. без изменений [16]
В 1991 году Росс Иейка и Роберт Джентльмен [17] в Университете Окленда , Новая Зеландия, начал альтернативную реализацию основного языка S, совершенно не зависит от S-PLUS . Они предали гласности этот проект, начиная с 1993 года. [18] В 1995 году Мартин Мэчлер убедил Ихаку и Джентльмена сделать R свободным и открытым программным обеспечением под Стандартной общественной лицензией GNU . Core Team R Development был создан для управления дальнейшего развития Р. Джон Чемберс стал членом по крайней мере , по состоянию на августа 2018 года [Обновить]. [19]R назван частично по именам первых двух авторов R и частично как игра с именем S. [20]
Первый официальный релиз был выпущен в 1995 году. 23 апреля 1997 года было официально объявлено о всеобъемлющей сети архивов R (CRAN) с 3 зеркалами и 12 дополнительными пакетами. [21] Первая официальная "стабильная бета" версия (v1.0) была выпущена 29 февраля 2000 г. [22] [23] [24]
Статистические характеристики [ править ]
R и его библиотеки реализуют различные статистические и графические методы, включая линейное и нелинейное моделирование, классические статистические тесты, анализ пространственных и временных рядов , классификацию, кластеризацию и другие. R легко расширяется с помощью функций и расширений, и сообщество R известно своим активным вкладом в виде пакетов. Многие из стандартных функций R написаны на самом R [ необходима цитата ], что позволяет пользователям легко следовать сделанным алгоритмам. Для ресурсоемких задач код C , C ++ и Fortran может бытьсвязаны и вызываются во время выполнения. Опытные пользователи могут написать код C, C ++, [25] Java , [26] .NET [27] или Python для непосредственного управления объектами R. [28] R обладает высокой расширяемостью за счет использования пакетов, представленных пользователем, для определенных функций или конкретных областей исследования. Благодаря своему наследию S , R имеет более сильные возможности объектно-ориентированного программирования , чем большинство языков статистических вычислений. [ необходима цитата ] Расширение R также облегчается его правилами лексической области видимости . [29]
Еще одна сильная сторона R - статическая графика, которая может создавать графики качества публикации, включая математические символы. Динамическая и интерактивная графика доступна через дополнительные пакеты. [30]
В R есть Rd, собственный формат документации, подобный LaTeX , который используется для предоставления исчерпывающей документации, как в Интернете в различных форматах, так и в печатном виде. [31]
Возможности программирования [ править ]
R - интерпретируемый язык ; пользователи обычно обращаются к нему через интерпретатор командной строки . Если пользователь вводит 2+2
в командной строке R и нажимает клавишу ВВОД, компьютер отвечает 4, как показано ниже:
> 2 + 2 [1] 4
Это вычисление интерпретируется как сумма двух одноэлементных векторов, в результате чего получается одноэлементный вектор. Префикс [1]
указывает, что список элементов, следующих за ним в той же строке, начинается с первого элемента вектора (функция, которая полезна, когда вывод распространяется на несколько строк).
Как и другие подобные языки, такие как APL и MATLAB , R поддерживает матричную арифметику . Структуры данных R включают векторы , матрицы , массивы, фреймы данных (аналогичные таблицам в реляционной базе данных ) и списки . [32] Массивы хранятся в порядке следования столбцов . [33] Расширяемая объектная система R включает объекты для (среди прочего): регрессионных моделей , временных рядов и геопространственных координат . Скалярный тип данных никогда не был структурой данных R. [34]Вместо этого скаляр представлен как вектор длины один. [35]
Многие особенности R унаследованы от Scheme . R использует S-выражения для представления как данных, так и кода. [ необходима цитата ] Функции являются первоклассными, и ими можно манипулировать так же, как и объектами данных, что облегчает метапрограммирование и допускает множественную отправку . Переменные в R имеют лексическую область видимости и динамически типизируются . Аргументы функции передаются по значению и являются ленивыми, то есть они оцениваются только при использовании, а не при вызове функции. [36]
R поддерживает процедурное программирование с функциями и, для некоторых функций, объектно-ориентированное программирование с универсальными функциями . Универсальная функция действует по-разному в зависимости от переданных ей классов аргументов. Другими словами, общая функция отправляет функцию ( метод ) , относящихся к данному классу от объекта . Например, R имеет общую print
функцию , которая может печатать почти каждый класс из объекта в R с простым print(objectname)
синтаксисом. [37]
Хотя он используется в основном статистиками и другими практиками, которым требуется среда для статистических вычислений и разработки программного обеспечения, R также может работать как общий набор инструментов для вычисления матриц - с тестами производительности, сопоставимыми с GNU Octave или MATLAB . [38]
Пакеты [ править ]
Возможности R расширяются за счет созданных пользователями пакетов , которые позволяют использовать специализированные статистические методы, графические устройства, возможности импорта / экспорта, инструменты отчетности ( Rmarkdown , knitr , Sweave ) и т. Д. Эти пакеты разрабатываются в основном на R, а иногда и на Java. , C , C ++ и Фортран . [ необходима цитата ] Система упаковки R также используется исследователями для создания сборников для систематической организации данных исследований, кода и файлов отчетов для совместного использования и публичного архивирования. [39]
Основной набор пакетов включен в установку R, и более 15 000 дополнительных пакетов (по состоянию на сентябрь 2018 г. [Обновить]) доступны в Comprehensive R Archive Network (CRAN), [40] Bioconductor , Omegahat, [41] GitHub и др. репозитории. [42]
Страница «Представления задач» (список тем) на веб-сайте CRAN [43] перечисляет широкий спектр задач (в таких областях, как финансы, генетика, высокопроизводительные вычисления, машинное обучение, получение медицинских изображений, социальные науки и пространственная статистика), для которых R был применен и для каких пакетов доступны. R также был определен FDA как подходящий для интерпретации данных клинических исследований. [44]
Другие ресурсы пакетов R включают Crantastic [45], сайт сообщества для оценки и обзора всех пакетов CRAN, и R-Forge [46], центральную платформу для совместной разработки пакетов R, программного обеспечения, связанного с R, и проектов. R-Forge также содержит множество неопубликованных бета-пакетов и разрабатываемых версий пакетов CRAN. Microsoft ведет ежедневный снимок CRAN, который датируется 17 сентября 2014 г. [47]
Проект Bioconductor предоставляет пакеты R для анализа геномных данных. Сюда входят инструменты объектно-ориентированной обработки и анализа данных из Affymetrix , микрочипа кДНК и высокопроизводительные методы секвенирования нового поколения . [48]
Группа пакетов под названием Tidyverse , которую можно рассматривать как «диалект языка R», становится все более популярной в экосистеме R. [примечание 1] Группа пакетов стремится предоставить целостный набор функций для решения общих задач науки о данных, включая импорт, очистку, преобразование и визуализацию данных (особенно с пакетом ggplot2 ).
R - один из 5 языков с API Apache Spark , остальные - это Scala , Java , Python и SQL . [49] [50]
Вехи [ править ]
Список изменений в выпусках R поддерживается в различных «новостных» файлах CRAN. [51] Некоторые основные моменты перечислены ниже для нескольких основных выпусков.
Релиз | Дата | Описание |
---|---|---|
0,16 | Это последняя альфа- версия, разработанная в основном Ихакой и Джентльменом. Реализована большая часть основных функций из «Белой книги» (см. Историю S ). Списки рассылки начались 1 апреля 1997 года. | |
0,49 | 1997-04-23 | Это самый старый исходный код, доступный в настоящее время на CRAN. [52] CRAN запускается в этот день с 3 зеркалами, на которых изначально размещалось 12 пакетов. [53] Альфа-версии R для Microsoft Windows и классической Mac OS стали доступны вскоре после выхода этой версии. [ необходима цитата ] |
0,60 | 1997-12-05 | R становится официальной частью проекта GNU . Код размещен и поддерживается на CVS . |
0,65,1 | 1999-10-07 | Первые версии функций update.packages и install.packages для загрузки и установки пакетов из CRAN. [54] |
1.0 | 2000-02-29 | Считается разработчиками достаточно стабильным для промышленного использования. [55] |
1.4 | 2001-12-19 | Представлены методы S4, и вскоре после этого станет доступна первая версия для Mac OS X. |
1,8 | 2003-10-08 | Введен гибкий механизм обработки условий для сигнализации и обработки объектов условий. |
2.0 | 2004-10-04 | Введена отложенная загрузка , которая обеспечивает быструю загрузку данных с минимальными затратами системной памяти. |
2.1 | 2005-04-18 | Поддержка кодировки UTF-8 и начало интернационализации и локализации для разных языков. |
2.6.2 | 2008-02-08 | Последняя версия для поддержки Windows 95, 98, Me и NT 4.0 [56] |
2.11 | 2010-04-22 | Поддержка 64-битных систем Windows. |
2.12.2 | 2011-02-25 | Последняя версия с поддержкой Windows 2000 [57] |
2,13 | 2011-04-14 | Добавление новой функции компилятора, которая позволяет ускорить функции, преобразовав их в байт-код. |
2,14 | 2011-10-31 | Добавлены обязательные пространства имен для пакетов. Добавлен новый параллельный пакет. |
2,15 | 2012-03-30 | Новые функции балансировки нагрузки. Повышена скорость сериализации для длинных векторов. |
3.0.0 | 2013-04-03 | Поддержка значений числового индекса 2 31 и более в 64-битных системах. |
3.3.3 | 2017-03-06 | Последняя версия для поддержки Microsoft Windows XP. |
3.4.0 | 2017-04-21 | Своевременная компиляция (JIT) функций и циклов в байтовый код включена по умолчанию. |
3.5.0 | 2018-04-23 | Пакеты по умолчанию компилируются в байтах при установке. Компактное внутреннее представление целочисленных последовательностей. Добавлен новый формат сериализации для поддержки компактных внутренних представлений. |
3.6.0 | 2019-04-26 | Улучшенная выборка из дискретного равномерного распределения, которое было заметно неравномерным для больших популяций. [58] Новый формат сериализации, поддерживаемый с версии 3.5.0, становится значением по умолчанию. |
4.0.0 | 2020-04-24 | R теперь использует значение по stringsAsFactors = FALSE умолчанию и, следовательно, по умолчанию больше не преобразует строки в факторы при вызовах data.frame() и read.table() . Подсчет ссылок используется для отслеживания совместного использования объектов, что снижает потребность в копировании объектов. Новый синтаксис для необработанных строковых констант. |
Интерфейсы [ править ]
Существуют различные приложения, которые можно использовать для редактирования или запуска кода R. [59]
Хотя исторически пользователи предпочитали запускать R через консоль командной строки [60], его также можно запустить с помощью IDE . IDE для R включают (в алфавитном порядке) Rattle GUI , R Commander , RKWard , RStudio и Tinn-R. [60] R также поддерживается в многоцелевых IDE, таких как Eclipse через плагин StatET, [61] и Visual Studio через инструменты R для Visual Studio . [62]
Редакторы, поддерживающие R, включают Emacs , Vim (плагин Nvim-R [63] ), Kate , [64] LyX , [65] Notepad ++ , [66] Visual Studio Code , WinEdt , [67] и Tinn-R. [68] Jupyter Notebook также можно настроить для редактирования и запуска кода R. [69]
Функциональность R доступна из нескольких языков сценариев, таких как Python , [70] Perl , [71] Ruby , [72] F # , [73] и Julia . [74] Также доступны интерфейсы для других языков программирования высокого уровня, таких как Java [75] и .NET C # [76] [77] .
Реализации [ править ]
Основная реализация R написана на R, C и Fortran [78], и есть несколько других реализаций, направленных на повышение скорости или расширяемости. Близко родственная реализация - pqR (довольно быстрый R) Рэдфорда М. Нила с улучшенным управлением памятью и поддержкой автоматической многопоточности. Renjin и FastR - это Java- реализации R для использования в виртуальной машине Java. CXXR, rho и Riposte [79] являются реализациями R в C ++ . Renjin, Riposte и pqR пытаются повысить производительность за счет использования нескольких ядер процессора и некоторой формы отложенной оценки. [80] Большинство этих альтернативных реализаций являются экспериментальными и неполными с относительно небольшим количеством пользователей по сравнению с основной реализацией, поддерживаемой основной группой разработчиков R.
TIBCO построила движок времени выполнения под названием TERR, который является частью Spotfire. [81]
Microsoft R Open - полностью совместимый дистрибутив R с модификациями для многопоточных вычислений. [82]
Сообщества [ править ]
В R есть локальные сообщества по всему миру, где пользователи могут общаться, делиться идеями и учиться. [83] [84]
Есть все большее число R событий , приносящих своим пользователям вместе, такие как конференции (например , ПОЛЬЗОВАТЕЛЬ! , WhyR ?, conectaR, SatRdays), [85] [86] Meetups, [87] , а также R-Ladies группы [88] которые продвигают гендерное разнообразие, и целевая группа R Foundation по делам женщин и других недопредставленных групп. [89]
Пользователь! конференции [ править ]
Официальное ежегодное собрание пользователей R называется «useR!». [90] Первым таким мероприятием было useR! 2004 г., май 2004 г., Вена , Австрия. [91] После пропуска 2005 года файл useR! конференция проводится ежегодно, как правило, чередуя места в Европе и Северной Америке. [92] Последующие конференции включали: [90]
- Пользователь! 2006, Вена, Австрия
- Пользователь! 2007, Эймс, Айова, США
- Пользователь! 2008, Дортмунд, Германия
- Пользователь! 2009, Ренн, Франция
- Пользователь! 2010, Гейтерсбург, Мэриленд, США
- Пользователь! 2011, Ковентри, Великобритания
- Пользователь! 2012, Нэшвилл, Теннесси, США
- Пользователь! 2013, Альбасете, Испания
- Пользователь! 2014 г., Лос-Анджелес, Калифорния, США
- Пользователь! 2015, Ольборг, Дания
- Пользователь! 2016, Стэнфорд, Калифорния, США
- Пользователь! 2017, Брюссель, Бельгия
- Пользователь! 2018, Брисбен, Австралия
- Пользователь! 2019, Тулуза, Франция
- Пользователь! 2020, Сент-Луис, штат Миссури, США (проводился онлайн в связи с пандемией COVID-19)
На будущее запланированы следующие конференции: [90] [93]
- Пользователь! 2021, Цюрих, Швейцария
The R Journal [ править ]
R Журнал является открытым доступом , реферативный журналом R проекта статистических вычислений. В нем представлены статьи от короткого до среднего об использовании и разработке R, включая пакеты, советы по программированию, новости CRAN и фундаментальные новости.
Сравнение с SAS, SPSS и Stata [ править ]
R сопоставим с популярными коммерческими статистическими пакетами, такими как SAS , SPSS и Stata , но R доступен пользователям бесплатно по лицензии на бесплатное программное обеспечение . [94]
В январе 2009 года в New York Times была опубликована статья, в которой описывался рост R, причины его популярности среди специалистов по обработке данных и угроза, которую он представляет для коммерческих статистических пакетов, таких как SAS. [95] В июне 2017 года специалист по анализу данных Роберт Мюнхен опубликовал более подробное сравнение R и других программных пакетов «Популярность программного обеспечения для обработки данных». [96]
R в большей степени ориентирован на процедурный код, чем SAS или SPSS, оба из которых интенсивно используют предварительно запрограммированные процедуры (называемые «procs»), встроенные в языковую среду и настраиваемые параметрами каждого вызова. R обычно обрабатывает данные в памяти, что ограничивает его полезность при обработке очень больших файлов. [97]
Коммерческая поддержка R [ править ]
Хотя R - это проект с открытым исходным кодом, поддерживаемый развивающимся сообществом, некоторые компании стремятся предоставить своим клиентам коммерческую поддержку и расширения. В этом разделе приведены несколько примеров таких компаний.
В 2007 году Ричард Шульц, Мартин Шульц, Стив Вестон и Кирк Меттлер основали Revolution Analytics для обеспечения коммерческой поддержки Revolution R, их распространения R, который также включает компоненты, разработанные компанией. Основные дополнительные компоненты включают в себя: ParallelR, среду разработки R Productivity Environment IDE, RevoScaleR (для анализа больших данных ), RevoDeployR, структуру веб-сервисов и возможность чтения и записи данных в формате файла SAS. [98] Revolution Analytics также предлагает распространение R, разработанное в соответствии с установленными критериями IQ / OQ / PQ, что позволяет клиентам в фармацевтическом секторе проверять свою установку REvolution R. [99] В 2015 году Microsoft Corporationзавершил приобретение Revolution Analytics. [100] и с тех пор интегрировал язык программирования R в SQL Server 2016, SQL Server 2017, SQL Server 2019, Power BI, управляемый экземпляр SQL Azure, Azure Cortana Intelligence, Microsoft ML Server и Visual Studio 2017 . [101]
В октябре 2011 года Oracle анонсировала Big Data Appliance , которая объединяет R, Apache Hadoop , Oracle Linux и базу данных NoSQL с оборудованием Exadata . [102] С 2012 [Обновить]года Oracle R Enterprise [103] стал одним из двух компонентов «Oracle Advanced Analytics Option» [104] (наряду с Oracle Data Mining ). [ необходима цитата ]
IBM предлагает поддержку выполнения R в Hadoop , [105] и модель программирования для массового параллельного анализа в базе данных на R. [106]
Tibco предлагает версию R во время выполнения как часть Spotfire . [107]
Mango Solutions предлагает пакет проверки для R, ValidR, [108] [109], чтобы сделать его совместимым с агентствами по одобрению лекарств, такими как FDA. Эти агентства разрешают использовать любое статистическое программное обеспечение в представленных материалах, если только программное обеспечение проверено либо поставщиком, либо самим спонсором. [110]
Примеры [ править ]
Базовый синтаксис [ править ]
Следующие примеры иллюстрируют базовый синтаксис языка и использование интерфейса командной строки. (Расширенный список стандартных языковых функций можно найти в руководстве R, «Введение в R». [111] )
В R обычно предпочтительным оператором присваивания является стрелка, состоящая из двух символов <-
, хотя =
в некоторых случаях ее можно использовать. [112] [113]
> x <- 1 : 6 # Создать числовой вектор в текущей среде > y <- x ^ 2 # Создать вектор на основе значений в x. > print ( y ) # Распечатать содержимое вектора. [1] 1 4 9 16 25 36> z <- x + y # Создать новый вектор, который представляет собой сумму x и y > z # вернуть содержимое z в текущее окружение. [1] 2 6 12 20 30 42> z_matrix <- matrix ( z , nrow = 3 ) # Создайте новую матрицу, которая превращает вектор z в объект матрицы 3x2 > z_matrix [, 1] [, 2] [1,] 2 20 [2,] 6 30 [ 3,] 12 42> 2 * t ( z_matrix ) -2 # Транспонировать матрицу, умножить каждый элемент на 2, вычесть 2 из каждого элемента в матрице и вернуть результаты на терминал. [, 1] [, 2] [, 3] [1,] 2 10 22 [2,] 38 58 82> new_df <- data.frame ( t ( z_matrix ), row.names = c ( 'A' , 'B' )) # Создайте новый объект data.frame, содержащий данные из транспонированной z_matrix, с именами строк 'A 'и' B ' > names ( new_df ) <- c ( ' X ' , ' Y ' , ' Z ' ) # установить имена столбцов new_df как X, Y и Z. > print ( new_df ) # распечатать текущий полученные результаты. XYZ A 2 6 12В 20 30 42> new_df $ Z # вывод столбца Z [1] 12 42> new_df $ Z == new_df [ 'Z' ] && new_df [ 3 ] == new_df $ Z # к столбцу Z data.frame можно получить доступ с помощью синтаксиса $ Z, ['Z'] или [3], а также значения такие же. [1] ИСТИНА> attributes ( new_df ) #print attributes информация об объекте new_df $ names [1] "X" "Y" "Z"$ row.names [1] «А» «Б»$ class [1] "data.frame"> attributes ( new_df ) $ row.names <- c ( 'one' , 'two' ) ## доступ, а затем изменение атрибута row.names; также можно сделать с помощью rownames () > new_df XYZ one 2 6 12 two 20 30 42
Структура функции [ править ]
Одна из сильных сторон R - простота создания новых функций. Объекты в теле функции остаются локальными по отношению к функции, и может быть возвращен любой тип данных. [114] Вот пример пользовательской функции:
# Объявить функцию «f» с параметрами «x», «y» #, которая возвращает линейную комбинацию x и y. f <- function ( x , y ) { z <- 3 * x + 4 * y return ( z ) ## функция return () здесь необязательна }
> f ( 1 , 2 ) [1] 11> f ( c ( 1 , 2 , 3 ), c ( 5 , 3 , 4 )) [1] 23 18 25> f ( 1 : 3 , 4 ) [1] 19 22 25
Моделирование и построение [ править ]
Язык R имеет встроенную поддержку моделирования данных и графики. В следующем примере показано, как R может легко создать и построить линейную модель с остатками.
> x <- 1 : 6 # Создание значений x и y > y <- x ^ 2 > model <- lm ( y ~ x ) # Модель линейной регрессии y = A + B * x. > summary ( model ) # Показать подробную сводку модели.Вызов: lm (формула = y ~ x)Остатки: 1 2 3 4 5 6 3,3333 -0,6667 -2,6667 -2,6667 -0,6667 3,3333Коэффициенты: Оценка Станд. Значение ошибки t Pr (> | t |) (Intercept) -9,3333 2,8441 -3,282 0,030453 * x 7,0000 0,7303 9,585 0,000662 *** --- Signif. коды: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 дюйма 1Остаточная стандартная ошибка: 3,055 по 4 степеням свободы Множественный R-квадрат: 0,9583, Скорректированный R-квадрат: 0,9478 F-статистика: 91,88 для 1 и 4 DF, p-значение: 0,000662> par ( mfrow = c ( 2 , 2 )) # Создайте макет 2 на 2 для фигур. > plot ( model ) # Вывод диагностических графиков модели.
Набор Мандельброта [ править ]
Короткий код R, вычисляющий множество Мандельброта через первые 20 итераций уравнения z = z 2 + c, построенного для различных комплексных констант c . Этот пример демонстрирует:
- использование внешних библиотек, разработанных сообществом (называемых пакетами), в данном случае пакет caTools
- обработка комплексных чисел
- многомерные массивы чисел , используемых в качестве основного типа данных, см переменных
C
,Z
иX
.
install.packages ( "caTools" ) # установить внешнюю библиотеку пакетов ( caTools ) # внешний пакет, предоставляющий функцию write.gif jet.colors <- colorRampPalette ( c ( "красный" , "синий" , "# 007FFF" , "голубой" , "# 7FFF7F" , "желтый" , "# FF7F00" , "красный" , "# 7F0000" )) dx <- 1500 # определить ширину dy <- 1400 # определить высоту C <- комплекс ( real = rep ( seq ( -2.2 , 1.0 , length.out = dx ), each = dy ), imag = rep ( seq ( -1.2 , 1.2 , length.out = dy ), dx )) C <- матрица ( C , dy , dx ) # преобразовать в квадратную матрицу комплексных чисел Z <- 0 # инициализировать Z равным нулюХ <- массив ( 0 , с ( ду , дх , 20 )) выход # инициализации 3D массив для ( K в 1 : 20 ) { # цикле с 20 итераций Z <- Z ^ 2 + С # центральной разностного уравнения X [ , , к ] <- ехр ( - абс ( Z )) # захвата результаты } write.gif ( Х , "Mandelbrot.gif" , col = jet.colors , delay = 100 )
См. Также [ править ]
- Язык программирования S
- Пакет R
- Сравнение программ численного анализа
- Сравнение статистических пакетов
- Список программ численного анализа
- Список статистического программного обеспечения
- Rmetrics
- RStudio
- Statcheck
- Tidyverse
Заметки [ править ]
- ^ По состоянию на 13 июня 2020 года Metacran перечислил 7 из 8 основных пакетов Tidyverse в списке наиболее загружаемых пакетов R.
Ссылки [ править ]
- ^ Хорник, Курт (26 ноября 2015). «R FAQ» . Комплексная R архивной сети . 2.1 Что такое R? . Проверено 5 августа 2018 .
- ^ а б Ихака, Росс (1998). R: История прошлого и будущего (PDF) (Технический отчет). Статистический факультет Оклендского университета, Окленд, Новая Зеландия.
- ^ "Выпущена R 4.0.5" ; строка имени автора: Питер Далгаард; дата публикации: 31 марта 2021 г .; получено: 31 марта 2021 г.
- ^ "Лицензия R" . р-проект . Проверено 5 августа 2018 .
- ^ «Введение» . Руководство Джулии . Архивировано из оригинала на 20 июня 2018 года . Проверено 5 августа 2018 .
- ^ R язык и среда
- Хорник, Курт (4 октября 2017 г.). «R FAQ» . Комплексная R архивной сети . 2.1 Что такое R? . Проверено 6 августа 2018 .
- Хорник, Курт (4 октября 2017 г.). «R FAQ» . Комплексная R архивной сети . 2.13 Что такое R Foundation? . Проверено 6 августа 2018 .
- R Core Team (2016). R: Язык и среда для статистических вычислений. R Фонд статистических вычислений, Вена, Австрия. URL http://www.R-project.org/ .
- ^ широко используется
- Фокс, Джон и Андерсен, Роберт (январь 2005 г.). «Использование статистической вычислительной среды R для преподавания на курсах социальной статистики» (PDF) . Департамент социологии Университета Макмастера . Проверено 6 августа 2018 . Цитировать журнал требует
|journal=
( помощь ) - Вэнс, Эшли (6 января 2009 г.). «Аналитики данных, увлеченные силой R» . Нью-Йорк Таймс . Проверено 6 августа 2018 .
R - это также название популярного языка программирования, используемого растущим числом аналитиков данных в корпорациях и академических кругах. Он становится их lingua franca ...
- Фокс, Джон и Андерсен, Роберт (январь 2005 г.). «Использование статистической вычислительной среды R для преподавания на курсах социальной статистики» (PDF) . Департамент социологии Университета Макмастера . Проверено 6 августа 2018 . Цитировать журнал требует
- ↑ Вэнс, Эшли (6 января 2009 г.). «Аналитики данных, увлеченные силой R» . Нью-Йорк Таймс . Проверено 6 августа 2018 .
R - это также название популярного языка программирования, используемого растущим числом аналитиков данных в корпорациях и академических кругах.
Он становится их lingua franca ...
- ^ Популярность R
- Дэвид Смит (2012); R возглавляет опрос по программному обеспечению интеллектуального анализа данных , журнал разработчиков Java, 31 мая 2012 г.
- Карл Рексер, Хизер Аллен и Пол Джиран (2011); Резюме исследования Data Miner за 2011 г. , представленное на конференции Predictive Analytics World, октябрь 2011 г.
- Роберт А. Мюнхен (2012). «Популярность программного обеспечения для анализа данных» .
- Типпманн, Сильвия (29 декабря 2014 г.). «Инструменты программирования: Приключения с R» . Природа . 517 (7532): 109–110. DOI : 10.1038 / 517109a . PMID 25557714 .
- ^ «Индекс TIOBE - Компания по качеству программного обеспечения» . ТИОБ . Проверено 13 апреля 2021 года .
- ^ Проект GNU
- "GNU R" . Free Software Foundation (FSF) Справочник свободного программного обеспечения. 23 апреля 2018 . Проверено 7 августа 2018 .
- Проект R (nd). "Что такое R?" . Проверено 7 августа 2018 .
- ^ Wrathematics (27 августа 2011). «Сколько R написано в R» . librestats. Архивировано из оригинала 12 июня 2018 года . Проверено 7 августа 2018 .
- ^ «7 лучших бесплатных графических пользовательских интерфейсов для R» . linuxlinks.com . Проверено 9 февраля +2016 .
- ^ "Список редакторов R" . r-реж . Проверено 7 августа 2018 .
- ^ Морандат, Фрэнсис; Хилл, Брэндон; Освальд, Лео; Витек, янв (2012). «Оценка дизайна языка R: объекты и функции для анализа данных» (PDF) . ECOOP'12 Труды 26-й Европейской конференции по объектно-ориентированному программированию . Дата обращения 17 мая 2016 .
- ^ "R: Что такое R?" . Р-Проект . Проверено 7 августа 2018 .
- ↑ Джентльмен, Роберт (9 декабря 2006 г.). «Индивидуальный профиль Роберта Джентльмена» . Архивировано из оригинала 23 июля 2011 года . Проверено 20 июля 2009 года .
- ^ Росс Ихака; Роберт Джентльмен (сентябрь 1996 г.). «R: язык для анализа данных и графики». Журнал вычислительной и графической статистики . 5 (3): 299. DOI : 10,2307 / 1390807 . ISSN 1061-8600 . JSTOR 1390807 . Викиданные Q56268347 . , цитируется по Roger D. Peng (3 сентября 2020 г.), R Programming for Data Science , Wikidata Q101068131 , раздел 2.4.
- ^ Тим, Ник (август 2018). «Поколение R» . Значение . 15 (4): 14–19. DOI : 10.1111 / j.1740-9713.2018.01169.x .
- ^ Курт Хорник. Часто задаваемые вопросы о R: почему именно R? . ISBN 3-900051-08-9. Проверено 29 января 2008 года .
- ^ Курт Хорник (23 апреля 1997). «Анонс: КРАН» . р-помощь . Викиданные Q101068595 . .
- ^ «R: История прошлого и будущего - проект свободного программного обеспечения» . cran.r-project.org . Проверено 30 мая 2016 .
- ^ "Более 16 лет истории R Project" . Революции . Проверено 30 мая 2016 .
- ^ Ихака, Росс. «Проект R: краткая история и мысли о будущем» (PDF) . stat.auckland.ac.nz .
- ^ Эддельбюттель, Дирк; Франсуа, Ромен (2011). «Rcpp: бесшовная интеграция R и C ++» . Журнал статистического программного обеспечения . 40 (8). DOI : 10,18637 / jss.v040.i08 .
- ^ "nution-j2r: библиотека Java для вызова собственных функций R" . Проверено 13 сентября 2018 года .
- ^ .NET Framework
- «Создание графического интерфейса пользователя с использованием C # и R с помощью R.NET» . Проверено 13 сентября 2018 года .
- "Домашняя страница R.NET" . Проверено 13 сентября 2018 года .
- Хайнольд, Оливер М. (апрель 2011 г.). Реализация клиента Rserve для CLI / .NET (PDF) . Р / Финанс 2011 . Чикаго, Иллинойс, США. Архивировано из оригинального (PDF) 29 ноября 2015 года . Проверено 13 сентября 2018 года .
- ^ R руководства. «Написание расширений R» . r-project.org . Проверено 13 сентября 2018 года .
- ^ Джекман, Саймон (весна 2003 г.). «Р для политического методолога» (PDF) . Политический методолог . Секция политической методологии, Американская ассоциация политических наук . 11 (1): 20–22. Архивировано из оригинального (PDF) 21 июля 2006 года . Проверено 13 сентября 2018 года .
- ^ «Просмотр задач CRAN: графические дисплеи и динамическая графика, графические устройства и визуализация» . Комплексная R архивной сети . Проверено 13 сентября 2018 года .
- ^ "Формат Rd" . hep.by . Проверено 13 сентября 2018 года .
- ^ Dalgaard, Питер (2002). Вводная статистика с R . Нью-Йорк, Берлин, Гейдельберг: Springer-Verlag. стр. 10 -18, 34. ISBN 0387954759.
- ^ Введение в R , раздел 5.1: Массивы. Получено в 2010-03 году с https://cran.r-project.org/doc/manuals/R-intro.html#Arrays .
- ^ Ихака, Росс; Джентльмен, Роберт (сентябрь 1996 г.). «R: язык для анализа данных и графики» (PDF) . Журнал вычислительной и графической статистики . Американская статистическая ассоциация. 5 (3): 299–314. DOI : 10.2307 / 1390807 . JSTOR 1390807 . Проверено 12 мая 2014 .
- ^ "Структуры данных · Advanced R." adv-r.had.co.nz . Проверено 26 сентября 2016 года .
- ^ http://adv-r.had.co.nz/Functions.html#lazy-evaluation
- ^ R Основная команда. «Ценности печати» . R Документация . R Фонд статистических вычислений . Проверено 30 мая 2016 .
- ^ "Сравнение скорости различных пакетов обработки чисел (версия 2)" . SciView. 2003. Архивировано из оригинального 16 октября 2007 года . Проверено 3 ноября 2007 года .
- ^ Марвик, Бен; Боеттигер, Карл; Маллен, Линкольн (26 августа 2017 г.). «Упаковка данных аналитической работы воспроизводимо с использованием R (и его друзей)» . Препринты PeerJ . DOI : 10,7287 / peerj.preprints.3192v1 . ISSN 2167-9843 .
- ^ "Всеобъемлющая сеть архивов R" . Проверено 16 сентября 2018 года .
- ^ "Omegahat.net" . Omegahat.net . Проверено 16 сентября 2018 года .
- ^ пакеты доступны из репозиториев
- Роберт А. Мюнхен (2012). «Популярность программного обеспечения для анализа данных» .
- Типпманн, Сильвия (29 декабря 2014 г.). «Инструменты программирования: Приключения с R» . Природа . 517 (7532): 109–110. DOI : 10.1038 / 517109a . PMID 25557714 .
- «Искать все пакеты R и руководства по функциям | Документация R» . Rдокументация . 16 июня 2014 . Проверено 16 сентября 2018 года .
- ^ "Представления задач CRAN" . cran.r-project.org . Проверено 16 сентября 2018 года .
- ^ «FDA: R OK для испытаний лекарств» . Проверено 16 сентября 2018 года .
- ^ "Это странно!" . Проверено 16 сентября 2018 года .
- ^ "R-Forge: Добро пожаловать" . Проверено 16 сентября 2018 года .
- ^ "CRAN Time Machine. MRAN" . Проверено 26 декабря 2019 .
- ^ Хубер, Вт; Кэри, 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 .
- ^ «Документация по API Spark» . Искра .
- ^ "SparkR (R на Spark)" . Искра .
- ^ Изменения в версиях 3.0.0 и новее: «R News» . cran.r-project.org . Проверено 3 июля 2014 года .Более ранние журналы изменений (по основному номеру выпуска):
- «НОВОСТИ» . cran.r-project.org . Проверено 28 июня 2020 .
- «НОВОСТИ.3» . cran.r-project.org . Проверено 28 июня 2020 .
- «НОВОСТИ.2» . cran.r-project.org . Проверено 8 апреля 2017 года .
- «НОВОСТИ.1» . cran.r-project.org . Проверено 8 апреля 2017 года .
- «НОВОСТИ.0» . cran.r-project.org . Проверено 8 апреля 2017 года .
- ^ "Индекс / src / base / R-0" .
- ^ «ОБЪЯВЛЕНИЕ: КРАН» .
- ^ https://cran.r-project.org/src/base/NEWS.0
- ^ Питер Далгаард. «Выпущена R-1.0.0» . Проверено 6 июня 2009 года .
- ^ https://cran-archive.r-project.org/bin/windows/base/old/2.7.0/CHANGES.R-2.7.0
- ^ "R FAQ" . Проверено 20 марта 2020 года .
- ^ Оттобони, Kellie; Старк, Филип Б. (2018). «Случайные проблемы с R» . arXiv : 1809.06520 [ cs.MS ].
- ^ «Рекомендации для текстового редактора Windows для R (StackOverflow)» . Проверено 20 декабря 2020 .
- ^ a b «Опрос: графические интерфейсы R, которые вы часто используете (2011)» . kdnuggets.com . Проверено 18 сентября 2018 года .
- ^ Стефан Уолбринк. «StatET для R» .
- ^ «Работа с R в Visual Studio» . Проверено 14 декабря 2020 года .
- ^ «Nvim-R - Плагин для работы с R: vim онлайн» . www.vim.org . Проверено 6 марта 2019 .
- ^ «Подсветка синтаксиса» . Кейт Команда разработчиков. Архивировано из оригинала 7 июля 2008 года . Проверено 9 июля 2008 года .
- ^ Пол Э. Джонсон и Грегор Горянц. «LyX с R через Sweave» . Проверено 4 апреля 2017 года .
- ^ «NppToR: R в Notepad ++» . sourceforge.net. 8 мая 2013 . Проверено 18 сентября 2013 года .
- ^ Уве Лиггес. "RWinEdt: R Интерфейс 'WinEdt ' " . Проверено 4 апреля 2017 года .
- ^ "Тинн-Р" . Проверено 5 марта 2019 .
- ^ «Использование языка программирования R в Jupyter Notebook» . Анаконда . Проверено 14 сентября 2020 года .
- Рианна Готье, Лоран (21 октября 2012 г.). «Простой и эффективный доступ к R из Python» . Проверено 18 сентября 2013 года .
- ^ Флоран Энгли. "Статистика :: R - Perl-интерфейс со статистической программой R - metacpan.org" .
- ^ alexgutteridge. «GitHub - alexgutteridge / rsruby: Ruby - R bridge» . GitHub .
- ^ Столица BlueMountain. «Поставщик типа F # R» .
- ^ "Встроенный R в Джулии" .
- ^ "Зарезервировать сервер TCP / IP" .
- ^ «RserveCLI2 - клиент .NET / CLR для Rserve» .
- ^ "Р.НЕТ" .
- ^ "r-source: зеркало только для чтения исходного кода R на GitHub" . GitHub . Проверено 14 сентября 2019 года .
- ^ Talbot, Джастин; Де Вито, Захари; Ханрахан, Пат (1 января 2012 г.). «Riposte: управляемый трассировкой компилятор и параллельная виртуальная машина для векторного кода в R». Материалы 21-й Международной конференции по параллельным архитектурам и методам компиляции . ACM: 43–52. DOI : 10.1145 / 2370816.2370825 . S2CID 1989369 .
- ↑ Нил, Рэдфорд (25 июля 2013 г.). «Отложенная оценка в Renjin, Riposte и pqR» . Блог Рэдфорда Нила . Проверено 6 марта +2017 .
- ↑ Джексон, Иоав (16 мая 2013 г.). TIBCO предлагает бесплатный R предприятию . Мир ПК . Проверено 20 июля 2015 года.
- ^ «Microsoft R Open: Расширенное распространение R» . Проверено 30 июня 2018 .
- ^ "Локальный каталог группы пользователей R" . Блог революций . Проверено 12 мая 2018 .
- ^ «Список конференций и встреч R» . Прыгающие реки . Проверено 12 мая 2018 .
- ^ "Официальный сайт конференции WhyR?" . ПочемуR? . Проверено 26 июня 2019 .
- ^ "Список субботы" . Суббота . Проверено 26 июня 2019 .
- ^ «Проект R для статистических вычислений» . Встреча . Проверено 12 мая 2018 .
- ^ "R Ladies" . R Дамы . Проверено 12 мая 2018 .
- ^ "Вперед" . Проверено 23 марта 2020 года .
- ^ a b c "R: Конференции" . r-project.org . 1 ноября 2019 . Проверено 19 ноября 2019 .
- ^ "useR! 2004 - Конференция пользователей R" . 27 мая 2004 . Проверено 9 сентября 2018 года .
- ^ R Project (9 августа 2013 г.). «R-связанные конференции» . Проверено 15 августа 2019 .
- ^ «UseR! 2021 - Конференция пользователей R» . Проверено 23 марта 2020 года .
- ↑ Бернс, Патрик (27 февраля 2007 г.). «Сравнение R с SAS, Stata и SPSS» (PDF) . Проверено 18 сентября 2013 года .
- ^ R как конкуренция за коммерческие статистические пакеты
- Вэнс, Эшли (7 января 2009 г.). «Аналитики данных очарованы мощью программы R: [Business / Financial Desk]» . Нью-Йорк Таймс .
- Вэнс, Эшли (8 января 2009 г.). "R Вы готовы к R?" . Нью-Йорк Таймс .
- ^ Muenchen, Роберт (19 июня 2017). «Популярность программного обеспечения для обработки данных» . Проверено 21 ноября 2018 .
- ^ «R против SPSS» .
- ^ Морган, Тимоти Прикетт (07.02.2011). «Red Hat для статистики идет в ногу с SAS». The Register, 7 февраля 2011 г. Получено с https://www.theregister.co.uk/2011/02/07/revolution_r_sas_challenge/ .
- ^ «Анализ данных клинических испытаний для представлений FDA с R» . Revolution Analytics. 14 января 2009 . Проверено 20 сентября 2018 года .
- ^ Сирош, Джозеф. «Microsoft закрывает приобретение Revolution Analytics» . blogs.technet.com . Microsoft . Проверено 20 сентября 2018 года .
- ^ «Введение в инструменты R для Visual Studio» . Проверено 20 сентября 2018 года .
- ^ Устройство больших данных Oracle Corporation
- Дуг Хеншен (2012); Oracle заставляет двигаться вперед устройства для обработки больших данных с помощью Cloudera , InformationWeek, 10 января 2012 г.
- Джайкумар Виджаян (2012); Oracle Big Data Appliance привлекает внимание к комплексному подходу , ComputerWorld, 11 января 2012 г.
- Тимоти Прикетт Морган (2011); Oracle выпускает собственные NoSQL, а Hadoop Oracle выпускает собственные NoSQL и Hadoop , The Register, 3 октября 2011 г.
- ^ Крис Канаракус (2012); Oracle делает ставку на R с запуском Advanced Analytics , PC World, 8 февраля 2012 г.
- ^ Дуг Хеншен (2012); Oracle делает ставку на R с запуском Advanced Analytics , InformationWeek, 4 апреля 2012 г.
- ^ «Что нового в IBM InfoSphere BigInsights v2.1.2» . IBM. Архивировано из оригинального 6 -го сентября 2014 года . Проверено 8 мая 2014 .
- ^ "IBM PureData System for Analytics" (PDF) . IBM. Архивировано 17 мая 2014 года из оригинального (PDF) . Проверено 8 мая 2014 .
- ^ Тибко. «Раскройте гибкость R для предприятия» . Проверено 15 мая 2014 .
- ^ "ValidR на веб-сайте Mango" . Проверено 24 сентября 2018 года .
- ^ Энди Николлс из Mango Solutions. «ValidR Enterprise: разработка структуры проверки R» (PDF) . Проверено 24 сентября 2018 года .
- ^ FDA. «Уточняющее заявление статистического программного обеспечения» (PDF) . Проверено 24 сентября 2018 года .
- ^ «Введение в R. Примечания к R: Среда программирования для анализа данных и графики» (PDF) . Проверено 3 января 2021 года .
- ^ Основная группа разработчиков R. «Назначения с оператором =» . Проверено 11 сентября 2018 года .
- ^ наиболее часто используемым оператором присваивания в R является
<-
- Основная команда разработчиков R. «Написание расширений R» . Проверено 11 сентября 2018 года .
[...] мы рекомендуем последовательное использование предпочтительного оператора присваивания '<-' (а не '=') для присваивания.
- «Руководство по стилю R от Google» . Проверено 11 сентября 2018 года .
- Уикхэм, Хэдли. «Гид по стилю» . Проверено 11 сентября 2018 года .
- Бенгтссон, Хенрик (январь 2009 г.). «R Coding Conventions (RCC) - проект» . Проверено 11 сентября 2018 года .
- Основная команда разработчиков R. «Написание расширений R» . Проверено 11 сентября 2018 года .
- ^ Kabacoff, Роберт (2012). «Quick-R: определяемые пользователем функции» . statmethods.net . Проверено 28 сентября 2018 .
Внешние ссылки [ править ]
- Официальный сайт проекта R