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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
R
Rlogo.png
Класс языка:

функциональный

Тип исполнения:

интерпретируемый

Появился в:

1993[1]

Автор(ы):

Росс Айхэка
Роберт Джентлмен

Выпуск:

3.1.0 (10 апреля 2014 года)

Система типов:

динамическая

Испытал влияние:

S, Scheme

Сайт:

r-project.org

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

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

R доступен под лицензией GNU GPL. Распространяется в виде исходных кодов, а также откомпилированных приложений под ряд операционных систем: FreeBSD, Solaris[3] и другие дистрибутивы Unix и Linux, Microsoft Windows, Mac OS X.

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

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

Особенности[править | править вики-текст]

R поддерживает широкий спектр статистических и численных методов и обладает хорошей расширяемостью с помощью пакетов. Пакеты представляют собой библиотеки для работы специфических функций или специальных областей применения. В базовую поставку R включен основной набор пакетов, а всего по состоянию на 2013 год доступно более 4000 пакетов[5].

Ещё одной особенностью R являются графические возможности, заключающиеся в возможности создания качественной графики, которая может включать математические символы.

Примеры[править | править вики-текст]

Средний балл выпускника вуза[править | править вики-текст]

# В переменную 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
[39] 4 5 5
[1] 41
[1] 4
  Оценка Кол-во        %
1      3     12 29.26829
2      4     17 41.46341111
3      5     12 29.26829

Полезные инструменты[править | править вики-текст]

Для удобства работы с R разработан ряд графических интерфейсов, в том числе:

Кроме того, в ряде текстовых и кодовых редакторов предусмотренные специальные режимы для работы с R, в частности:

Доступ к функциям и среде выполнения R возможен из Python с использованием пакета RPy[13].

Коммерциализация[править | править вики-текст]

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

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

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

CRAN[править | править вики-текст]

R и дополнительные пакеты распространяются через CRAN (акроним Comprehensive R Archive Network). В настоящее время в мире доступны более 60 зеркал CRAN. Головной узел — (http://cran.r-project.org/) расположен в Вене (Австрия).

Информационный бюллетень R[править | править вики-текст]

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

Конференции[править | править вики-текст]

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

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

Примечания[править | править вики-текст]

  1. A Brief History R: Past and Future History, Ross Ihaka, Statistics Department, The University of Auckland, Auckland, New Zealand, available from the CRAN website
  2. Teaching-with-R.pdf (англ.)
  3. R-Project on Solaris (недоступная ссылка с 13-05-2013 (519 дней))
  4. InfoWorld Bossie Awards 2010
  5. Российское зеркало CRAN.
  6. SciViews
  7. Togaware: Rattle: Gnome Cross Platform GUI for Data Mining using R
  8. R syntax — jEdit Community
  9. http://www.kate-editor.org/syntax/2.5/r.xml
  10. http://syn.sourceforge.net/
  11. Tinn-R | Download Tinn-R software for free at SourceForge.net
  12. WalWare — Homepage
  13. http://rpy.sourceforge.net RPy on SourceForge
  14. 'Red Hat for stats' goes toe-to-toe with SAS
  15. Oracle Unveils the Oracle Big Data Appliance
  16. Oracle rolls its own NoSQL and Hadoop
  17. Prickett Morgan, Timothy Oracle tucks R stats language into database (англ.). The Register (10 February 2012). Проверено 10 февраля 2012. Архивировано из первоисточника 3 июня 2012.
  18. Harris, Derrick. IBM Creates Big Data Frankenstein With Netezza-R Fusion  (англ.), The New York Times (2011-03-141). Проверено 19 ноября 2011.
  19. Rosenberg, Dave Open-source 'R' gets Hadoop integration (англ.). CNet. CBS. Проверено 19 ноября 2011. Архивировано из первоисточника 17 февраля 2012.
  20. Spotfire Integration with S+ and R
  21. RSS Matters
  22. R Language Platform | StatSoft
  23. R" integrated with Symphony
  24. Calling Functions in the R Language (SAS/IML)
  25. R Journal
  26. CRAN: R News

Ссылки[править | править вики-текст]