R (язык программирования)

R
Изображение логотипа
Класс языка мультипарадигмальный
Тип исполнения интерпретируемый
Появился в 1993[1]
Автор Росс Айхэка
Роберт Джентлмен
Выпуск
Система типов динамическая
Испытал влияние S, Scheme
Лицензия GNU GPL 2[4]
Сайт r-project.org (англ.)
ОС GNU/Linux[5], BSD[вд][5], macOS[5] и Windows[5]
Логотип Викисклада Медиафайлы на Викискладе

R — язык программирования для статистической обработки данных и работы с графикой, а также свободная программная среда вычислений с открытым исходным кодом в рамках проекта GNU. Язык создавался как аналогичный языку S, разработанному в Bell Labs, и является его альтернативной реализацией, хотя между языками есть существенные отличия, но в большинстве своём код на языке S работает в среде R. Изначально R был разработан сотрудниками статистического факультета Оклендского университета Россом Айхэкой (англ. Ross Ihaka) и Робертом Джентлменом (англ. Robert Gentleman) (первая буква их имён — R); язык и среда поддерживаются и развиваются организацией R Foundation[6].

Широко используется как статистическое программное обеспечение для анализа данных и фактически стал стандартом для статистических программ[7].

Язык и среда доступны под лицензией GNU GPL; распространяются в виде исходных кодов, а также откомпилированных приложений под ряд операционных систем: FreeBSD, Solaris[8] и другие дистрибутивы Unix и Linux, Windows, macOS.

В R используется интерфейс командной строки, хотя доступны и несколько графических интерфейсов пользователя, например пакет R Commander, RKWard, RStudio, Weka, Rapid Miner, KNIME[англ.], а также средства интеграции в офисные пакеты.

В 2010 году R вошёл в список победителей конкурса журнала Infoworld в номинации на лучшее открытое программное обеспечение для разработки приложений[9].

Особенности

R — интерпретируемый язык программирования, основным способом работы с которым является командный интерпретатор. Язык является регистрозависимым, в плане синтаксиса он похож, с одной стороны, на функциональные языки типа Scheme, с другой — на типичные современные сценарные языки, с простым синтаксисом и небольшим набором основных конструкций. Язык объектный: любой программный объект в нём имеет набор атрибутов — именованный список значений, определяющих его.

Язык поддерживает минимальный набор примитивных типов данных: символьный (character), числовой (numeric), логический (logical) и комплексный (complex). Числовые переменные, помимо обычных чисел, могут принимать специальные значения NaN (Not a Number — «не число») и Inf (Infinity — «бесконечность»). Бесконечность (положительная или отрицательная) получается при выходе результата вычислений за пределы представимого реализацией диапазона, NaN — при операциях с неопределённым результатом. Помимо этих, имеется ещё одно очень важное специальное значение, NA (Not Available — «не доступно»). Оно может быть использовано для фиксации того факта, что соответствующее значение, участвующее в вычислениях, по какой-либо причине не было получено (достаточно обычная в статистических расчётах ситуация, когда из-за сбоев в сборе данных некоторые наблюдения остаются без результатов).

Значения примитивных типов могут объединяться в векторы (vector), списки (list), матрицы или массивы (matrix), в том числе многомерные; эти комбинированные типы хранят наборы данных одного и того же примитивного типа. Помимо этого язык содержит понятие факторов (factor) — наборов категориальных или шкальных данных, принимающих строго определённый набор значений. Наконец, могут создаваться таблицы (data frame) — структуры данных, которые для каждой строки (индивида) хранят набор различных (и имеющих разные типы) параметров (признаков). Особенностью R является то, что операции с векторами и матрицами поддерживаются на уровне самого языка, как, например, в APL.

Существует операция извлечения и записи данных (аналог присваивания) «<-», а также обычные операции работы с данными, в том числе арифметические. Доступ по индексу к элементам векторов и массивов осуществляется с помощью квадратных скобок, доступ к атрибутам списков — посредством оператора «$». Имеется минимальный набор обычных конструкций императивного программирования: условный оператор if, циклы while и for. Выражения на R можно описывать как отдельные объекты и вычислять по мере необходимости. На этом же механизме основано описание функций. Имеются встроенные в язык средства применения выражений и функций к векторам и массивам.

Функции R могут объединяться в пакеты — загружаемые модули, которые подключаются к любой программе и предоставляют объединённые в них вычислительные средства. Пакеты для R могут разрабатываться на других языках программирования, в том числе на Си, что позволяет, с одной стороны, скомпенсировать ограниченность изобразительных средств самого языка R, а с другой — при необходимости достигнуть высоких показателей вычислительной производительности.

Сам язык имеет довольно ограниченные и не слишком удобные средства описания данных, но это компенсируется наличием библиотечных средств, которые позволяют загружать в виде таблиц R наборы данных, представленных в большинстве открытых и многих проприетарных форматах. Так, в R могут быть легко загружены таблицы в простом текстовом формате, таблицы Excel различных версий, данные в форматах CSV, XML и многих других.

В целом, как язык программирования, R довольно прост и даже примитивен. Его наиболее сильная сторона — возможность неограниченного расширения с помощью пакетов. В базовую поставку R включён основной набор пакетов, а всего по состоянию на 2024 год доступно более 20 304 пакетов[10]. В R реализованы практически все актуальные средства универсальных статистических вычислений, такие как регрессионный анализ и анализ временных рядов, а также множество специфических алгоритмов для решения узкоспециализированных задач и исследований в отдельных областях.

Ещё одна особенность языка — возможность создания качественной графики типографского уровня, которая может быть экспортирована в распространённые графические форматы и использована для презентаций или публикаций. Имеются готовые пакеты, связывающие R с GUI-фреймворками (например, основанными на Tcl/Tk) и позволяющие создавать специализированные утилиты статистического анализа с графическим интерфейсом пользователя и отображением результатов в виде графиков и диаграмм.

Примеры

Базовый синтаксис

> x <- c(1,2,3,4,5,6)   # Создать упорядоченную коллекцию
> y <- x^2              # Возвести в квадрат элементы из x
> print(y)              # Вывести y
[1]  1  4  9 16 25 36
> mean(y)               # Рассчитать среднее арифметическое y; результат - число
[1] 15.16667
> var(y)                # Рассчитать дисперсию
[1] 178.9667

Средний балл выпускника вуза

# В переменную a поместить список всех оценок:
a <- c(4,3,3,3,3,4,4,4,4,4,5,4,4,4,5,5,5,5,+
3,5,5,4,4,3,3,4,4,3,5,5,4,3,3,4,4,3,3,5,4,5,5)

# В переменную n поместить количество оценок:
length(a) -> n

# Средний балл:
m <- mean(a)

# Таблица (горизонтальная) с подсчётом количества оценок:
t <- table(a)

# Преобразование в более удобный формат данных (вертикальную таблицу):
f <- as.data.frame(t)

# Вычисление процентной доли и запись её в третий столбец:
mapply(function(r) r*100/n, f[,2]) -> f[,3]

# Заголовки столбцов:
colnames(f) <- c("Оценка", "Кол-во", "%")

# Вывод результатов:
a
n
m
f

Результат:

[1] 4 3 3 3 3 4 4 4 4 4 5 4 4 4 5 5 5 5 3 5 5 4 4 3 3 4 4 3 5 5 4 3 3 4 4 3 3 5     |   вывод a (в строку влезли 38 чисел из 41)
[39] 4 5 5                                                                          |   (оставшиеся три числа)
[1] 41                                                                              |   вывод n
[1] 4                                                                               |   вывод m
  Оценка Кол-во        %                                                            |   1-й столбец - номер строки в таблице
1      3     12 29.26829                                                            |   2-й столбец - вид оценки ("3"/"4"/"5")
2      4     17 41.46341111                                                         |   3-й столбец - количество оценок
3      5     12 29.26829                                                            |   4-й столбец - процентная доля оценок

Инструменты

Для удобства работы с R разработан ряд графических интерфейсов, в том числе RStudio, JGR, RKWard, SciViews-R, Statistical Lab, R Commander, Rattle, а также программный пакет Shiny.

Кроме того, в ряде текстовых и кодовых редакторов предусмотренные специальные режимы для работы с R, в частности в ConTEXT, Emacs (Emacs Speaks Statistics), jEdit, Kate, Notepad++, Syn, TextMate, Tinn-R, Vim, Bluefish, WinEdt (с пакетом RWinEdt), Gedit (с пакетом rgedit/gedit-r-plugin). Для среды разработки Eclipse существует специализированный R-плагин; доступ к функциям и среде выполнения R возможен из Python с использованием пакета RPy; работать с R можно из эконометрического пакета Gretl.

Коммерциализация

Компания Revolution Analytics, основанная в 2007 году и поглощённая Microsoft в 2015 году, целиком свой бизнес основывала на коммерциализации языка программирования R, в её коммерческом пакете Revolution R примечательны такие компоненты (не распространяемые со свободной версией языка), как ParallelR (поддержка многопоточности среды выполнения), R Productivity Environment (интегрированная среда разработки), RevoScaleR (поддержка массово-параллельной обработки в рамках концепции «больших данных»), RevoDeployR, библиотеки по интеграции с веб-службами, поддержка форматов статистических пакетов корпорации SAS Institute[11].

В октябре 2011 года корпорация Oracle выпустила аппаратно-программный комплекс Big Data Appliance — NoSQL-кластер серверов массово-параллельной обработки, с интегрированным программными средствами на основе языка R и Apache Hadoop[12], а в феврале 2012 года язык встроен в Oracle Database[13]. В 2011 году массово-параллельный анализ средствами R реализован в аппаратно-программных комплексах Netezza корпорации IBM[14][15]; позднее язык поддержан в аппаратно-программном комплексе SAP Hana.

Также язык R поддерживают коммерческие программные среды Tibco Spotfire, SPSS (начиная с версии 16.0)[16], Statistica (начиная с версии 9.0), Platform Symphony, Power BI, SAS, Tableau.

CRAN

R и дополнительные пакеты распространяются через CRAN (акроним Comprehensive R Archive Network). По состоянию на конец 2010-х годов в мире доступны более 60 зеркал CRAN, головной узел расположен в Вене (Австрия)[17].

Информационный бюллетень R

Два-три раза в год выходит свободно распространяемый информационный журнал R Journal[18], включающий статьи о статистической обработке данных и разработке, нацеленный как на пользователей языка, так и разработчиков R. С января 2001 года по октябрь 2008 года он выходил в качестве бюллетеня R News[19].

Конференции

Одна из самых популярных конференций, посвящённых языку — useR! (The R User Conference), проходит ежегодно, начиная с 2004 года, собирает специалистов в различных областях.

Начиная с 2009 года каждой весной в Чикаго проводится конференция, посвящённая применению R в финансах (R/Finance: Applied Finance with R). В 2013 году прошла первая конференция, посвящённая применению R в страховании (R in Insurance).

Примечания

  1. A Brief History Архивная копия от 14 февраля 2012 на Wayback Machine R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, available from the CRAN website
  2. 1 2 R: A Language for Data Analysis and Graphics
  3. Dalgaard P. 4.4.2 is released (англ.) — 2024.
  4. https://www.r-project.org/about.html
  5. 1 2 3 4 Free Software Directory
  6. R: The R Foundation. Дата обращения: 28 октября 2016. Архивировано 25 мая 2016 года.
  7. Teaching-with-R.pdf Архивная копия от 11 июня 2016 на Wayback Machine (англ.)
  8. R-Project on Solaris (недоступная ссылка)  (недоступная ссылка с 13-05-2013 [4234 дня])
  9. InfoWorld Bossie Awards 2010 Архивировано 11 сентября 2014 года.
  10. CRAN - Contributed Packages. cran.r-project.org. Дата обращения: 23 января 2024. Архивировано 20 января 2024 года.
  11. 'Red Hat for stats' goes toe-to-toe with SAS. Дата обращения: 29 сентября 2017. Архивировано 7 июля 2017 года.
  12. Oracle rolls its own NoSQL and Hadoop. Дата обращения: 29 сентября 2017. Архивировано 7 июля 2017 года.
  13. Prickett Morgan, Timothy Oracle tucks R stats language into database (англ.). The Register (10 февраля 2012). Дата обращения: 10 февраля 2012. Архивировано из оригинала 3 июня 2012 года.
  14. Harris, Derrick (2011-03-141). "IBM Creates Big Data Frankenstein With Netezza-R Fusion" (англ.). The New York Times. Дата обращения: 19 ноября 2011. {{cite news}}: Проверьте значение даты: |date= (справка)
  15. Rosenberg, Dave Open-source 'R' gets Hadoop integration (англ.). CNet. CBS. Дата обращения: 19 ноября 2011. Архивировано из оригинала 17 февраля 2012 года.
  16. RSS Matters. Дата обращения: 19 ноября 2011. Архивировано 2 апреля 2012 года.
  17. Головной узел CRAN. Дата обращения: 7 апреля 2007. Архивировано 5 января 2008 года.
  18. R Journal. Дата обращения: 30 декабря 2010. Архивировано 17 февраля 2010 года.
  19. CRAN: R News. Дата обращения: 7 апреля 2007. Архивировано 28 мая 2007 года.

Литература

  • Роберт Кабаков. R в действии = R in Action. — ДМК-Пресс, 2014. — 588 с. — ISBN 978-5-947060-077-1.
  • Хэдли Уикем, Гарретт Гроулмунд. Язык R в задачах науки о данных: импорт, подготовка, обработка, визуализация и моделирование данных = R for Data Science: Visualize, Model, Transform, Tidy, and Import Data. — Вильямс, 2017. — 592 с. — ISBN 978-5-9909446-8-8, 978-1-491-91039-9.
  • Норман Мэтлофф[англ.]. Искусство программирования на R. Погружение в большие данные = The Art of R Programming: А Tour of Statistical Software Design. — Питер, 2019. — 416 с. — ISBN 978-5-4461-1101-5.

Ссылки

Read other articles:

French novelist (born c. 1948) This article is an orphan, as no other articles link to it. Please introduce links to this page from related articles; try the Find link tool for suggestions. (March 2019) Cookie Allez (born c. 1948) is a French novelist. Early life Cookie Allez was born circa 1948.[1] Career She has written seven novels.[1] Her second novel, La Soupière, talked about a mother and her son, who works as a clinical assistant.[2] In her seventh novel, Domin...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (أبريل 2019) مرصد لي إحداثيات 33°54′02″N 35°28′47″E / 33.900544444444°N 35.479802777778°E / 33.900544444444; 35.479802777778  معلومات عامة الدولة لبنان  تاريخ الافتتاح الرسمي 1873  التلسكو

 

Italia insulare Stati Italia Regioni Sardegna Sicilia Territorio767 comuni Superficie49 801 km² Abitanti6 377 044[1] (31-12-2022) Densità128,05 ab./km² Lingueitaliano, albanese, siciliano, lombardo di Sicilia, greco, catalano, sardo, ligure, gallurese e sassarese Nome abitantiisolani (sardi, siciliani) Con l'espressione Italia insulare (o semplicemente Isole) ci si riferisce, per convenzione, a una delle macro-aree che compongono la Repu...

Barnwell County County in de Verenigde Staten Situering Staat South Carolina Coördinaten 33°15'36NB, 81°26'24WL Algemeen Oppervlakte 1.443 km² - land 1.420 km² - water 23 km² Inwoners (2000) 23.478 (17 inw./km²) Overig Zetel Barnwell FIPS-code 45011 Opgericht 1798 Foto's Bevolkingspiramide Barnwell County Statistieken volkstelling Barnwell County Portaal    Verenigde Staten Barnwell County is een van de 46 county's in de Amerikaanse staat South Carolina. De county heeft een l...

 

Salmtal Gemeente in Duitsland Situering Deelstaat Rijnland-Palts Landkreis Bernkastel-Wittlich Verbandsgemeinde Wittlich-Land Coördinaten 49° 55′ NB, 06° 50′ OL Algemeen Oppervlakte 14,09 km² Inwoners (31-12-2020[1]) 2.444 (173 inw./km²) Hoogte 181 m Burgemeester Reinhard Berg Overig Postcode 54528 Netnummer 06578 Kenteken WIL (alternatief: BKS) Gemeentenr. 07 2 31 113 Website www.salmtal.de Locatie van Salmtal in Bernkastel-Wittlich Portaal    Duitslan...

 

Fictional character Fictional character Miranda PriestlyMiranda Priestly as portrayed by Meryl StreepFirst appearanceThe Devil Wears Prada (2003)Last appearanceRevenge Wears Prada: The Devil Returns (2013)Created byLauren WeisbergerPortrayed byMeryl Streep (film)In-universe informationGenderFemaleTitleEditor-in-chief, US RunwayOccupationMagazine editor, fashion journalistSpouseHunter Tomlinson (B-DAD) in novelStephen (2nd husband) in filmChildrenTwin daughters Cassidy and Caroline, age 11 Mir...

Album by Gil Scott-Heron I'm New HereStudio album by Gil Scott-HeronReleasedFebruary 8, 2010StudioXL Studio in LondonGenreBlueselectronicapost-industrialspoken wordfolktrip hopLength28:25LabelXLProducerRichard RussellGil Scott-Heron chronology Spirits(1994) I'm New Here(2010) We're New Here(2011) Singles from I'm New Here Me and the DevilReleased: February 22, 2010 I'm New Here is the 15th and final studio album by American vocalist and pianist Gil Scott-Heron. It was released on February...

 

Strait of Lake Baikal, Russia This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Olkhon Gate – news · newspapers · books · scholar · JSTOR (September 2017) (Learn how and when to remove this template message) A map of Lake Baikal (Olkhon Gate in centre) Olkhon Gate (Russian: Ольхонские Ворота, O...

 

Red Mars and Green Mars redirect here. For the planet, see Mars. For the novella by the same author, see Green Mars (novella). Series of science fiction novels by Kim Stanley Robinson Covers of the Mars trilogy by Harper Voyager 2009 (UK) The Mars trilogy is a series of science fiction novels by Kim Stanley Robinson that chronicles the settlement and terraforming of the planet Mars through the personal and detailed viewpoints of a wide variety of characters spanning almost two centuries. Ulti...

Sexual activity between family members or close relatives This article is about the variable social, legal, religious, and cultural attitudes and sanctions concerning human sexual relations with close kin. For a detailed description of its legal aspects worldwide, see Legality of incest. For the biological act of reproducing with close kin, see Inbreeding. For the descriptive term for blood-related kin, see Consanguinity. For other uses, see Incest (disambiguation). Family law Family Marriage...

 

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may be too technical for most readers to understand. Please help improve it to make it understandable to non-experts, without removing the technical details. (October 2010) (Learn how and when to remove this template message) This article needs additional citations for verification. Please help improve this article by adding cit...

 

Overview of criticism of an economic system and political ideology Anti-socialism redirects here. For opposition to communism, see Anti-communism. For other uses, see Antisocial (disambiguation). This article is about criticism of socialist economic systems and political movements. For criticism of Communist states, see Criticism of Communist party rule. For criticism of Marxism, a branch of socialism, see Criticism of Marxism. For criticism of social democracy and welfare capitalism, see Cri...

Innocuous word or expression used in place of one that may be found offensive This article possibly contains original research. Please improve it by verifying the claims made and adding inline citations. Statements consisting only of original research should be removed. (August 2021) (Learn how and when to remove this template message) Sign in a Rite Aid drugstore using common euphemisms for (from top) contraceptives; vaginal douches; menstrual pads and tampons; and adult diapers, respectivel...

 

Sally FieldField at the 62nd Academy Awards ceremony, 1990LahirSally Margaret FieldPekerjaanAktris, produser, sutradara, penulis skenarioTahun aktif1965–sekarangSuami/istriAlan Greisman (1984–1993)Steven Craig (1968–1975) Sally Margaret Field (lahir 6 November 1946) adalah seorang aktris berkebangsaan Amerika Serikat yang memenangkan dua Academy Award dan tiga Golden Globe. Dia dilahirkan di Pasadena, California. Dia mulai berkarier di dunia film sejak tahun 1967.[1][2&...

 

1977 single by AC/DC This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Whole Lotta Rosie – news · newspapers · books · scholar · JSTOR (June 2021) (Learn how and when to remove this template message) Not to be confused with Whole Lotta Love. Whole Lotta RosieSingle by AC/DCfrom the album Let There Be Rock B-si...

American ecologist This article is an orphan, as no other articles link to it. Please introduce links to this page from related articles; try the Find link tool for suggestions. (June 2017) Donald ZakNationalityAmericanAlma materMichigan State UniversityUniversity of IdahoOhio State UniversityScientific careerFieldsEcologyInstitutionsUniversity of Michigan Donald R. Zak is an American ecologist, currently the Alexander H. Smith Distinguished University Professor of Ecology and Arthur F. ...

 

Untuk kegunaan lain, lihat Nerva (disambiguasi). NervaKaisar Romawi ke-12Patung kepala Kaisar Nerva, di Palazzo Massimo alle Terme (Museum Nasional), RomaBerkuasa18 September 96 – 25 Januari 98PendahuluDomitianPenerusTrajanKelahiran(30-11-08)8 November 30Narni, ItaliaKematian27 Januari 98(98-01-27) (umur 67)Gardens of Sallust, RomaPemakamanMausoleum Augustus, RomaNama lengkapMarcus Cocceius Nerva (sebelum menjadi Kaisar); Marcus Cocceius Nerva Caesar Augustus (sebagai Kaisar)AyahMarcus...

 

Airport in southern Thailand Hua Hin Airportท่าอากาศยานหัวหินIATA: HHQICAO: VTPHSummaryAirport typePublicOperatorDepartment of AirportsServesHua Hin, Prachuap Khiri Khan, Phetchaburi, Cha-amLocation65 Phetkasem Road, Hua Hin, Prachuap Khiri Khan, ThailandOpened3 February 1961; 62 years ago (1961-02-03)Elevation AMSL62 ft / 19 mCoordinates12°38′10″N 099°57′05″E / 12.63611°N 99.95139°E / 12.63...

1972 United States Senate special election in Vermont ← 1970 January 7, 1972 (1972-01-07) 1976 →   Nominee Robert Stafford Randolph Major Party Republican Democratic Popular vote 45,888 23,842 Percentage 64.36% 33.44% County resultsStafford:      50–60%      60–70%      70–80% U.S. senator before election Robert Stafford Republican Elected U.S. Senator Robert Staffor...

 

  لمعانٍ أخرى، طالع قفص (توضيح). اضغط هنا للاطلاع على كيفية قراءة التصنيف قفص A. natalitius المرتبة التصنيفية جنس  التصنيف العلمي المملكة: نباتae غير مصنف: كاسيات البذور غير مصنف: ثنائيات الفلقة الحقيقية غير مصنف: وردانيات الرتبة: ملبيغيات الفصيلة: ملبيغية الجنس: Acridocarpus(G.Don) ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!