R (мова програмування)
| Творці: | Ross Ihaka та Robert Gentleman |
|---|---|
| Розробник: | R Development Core Team |
| Останній реліз: | 3.0.1 (16 травня 2013) |
| Система типізації: | динамічна |
| Під впливом від: | S, Scheme |
| ОС: | декілька:Linux/Unix, Windows, Mac OS X |
| Ліцензія: | GNU General Public License |
| Сторінка інтернет: | www.r-project.org |
R — мова програмування і програмне середовище для статистичних обчислень, аналізу та представлення даних в графічному вигляді. Розробка R відбувалась під істотним впливом двох існуючих мов програмування: мови програмування S з семантикою успадкованою від Scheme [1]. R названа в честь перших літер імен її засновників Роса Іхаки (Ross Ihaka) та Роберта Джентлмена (Robert Gentleman)[2] працівників Оуклендського Універститету, в Новій Зеландії. Незважаючи на деякі принципові відмінності, більшість програм, написаних на мові програмування S запускаються в середовищі R.
R розповсюджуєтся безкоштовно за ліцензією GNU General Public License [3][4] у вигляді вільно дооступого вихідного коду або відкомпільованих бінарних версій більшості операційних систем: Linux, FreeBSD, Microsoft Windows, Mac OS X, Solaris. R використовує текстовий інтерфейс, однак існують різного роду графічні інтерфейси користувача (див. Графічні Редактори Скриптів та IDE).
R містить широкі можливості для проведення статистичних аналізів, включаючи лінійну і нелінійну регресію, класичні статистичні тести, аналіз часових рядів (серій), кластерний аналіз і багато іншого. R легко розбудовується завдяки використанню додаткових функцій і пакетів доступних на сайті Comprehensive R Archive Network (CRAN). Більша частина стандартних функцій R, написана на мові R, однак існує можливість підключати код написаний на C, C++, або Fortran. Також за допомогою програмного коду на C або Java [5] можна безпосередньо маніпулювати R об'єктами.
Зміст |
Особливості [ред.]
R належить до інтерпретованих мов програмування і для роботи використовується командний інтерпретатор. Наприклад робота R в терміналі виглядає наступним чином
> 1+1 [1] 2
В мові програмування R всі змінні є об'єктами, кожен об'єкт належить до деякого класу.[6] Дані у вигляді об'єктів: векторів, масивів, датафреймів (таблиць даних), списків. R підтримує концепцію Об'єктно-Орієнтованого Програмування (ООП) включаючи generic функції, результат виконання якої залежить від аргументів (типу об'єктів), що передаються generic функції. Хоча R орієнтована на розв'язок і аналіз статистичних задач, може використовуватися для матричних обрахунків з швидкодією порівняльною до математичних пакетів GNU Octave або MATLAB.[7]
Створено велику кількість пакетів для статистичних обчислень, біоінформатики, оптимізації і тд (див. "Пакети/Бібліотеки").
Середовище R містить засоби для візуалізації результатів обчислень (2-вимірні, 3-вимірні графіки, діаграми, гістограми, діаграми (схеми) Ганта тощо). Графічні можливості R дозволяють створювати високоякісні графіки з різними атрибутами, включаючи також математичні формули і символи.
Іншою особливістю є функція Sweave яка дозволяє інтеграцію і виконання коду R в документах написаних за допомогою LaTeX з метою створення динамічних звітів [8].
R de-facto став стандартом серед міжнародної спільноти спеціалістів в області статистики, і широко використовується в розробках статистичних програм та аналізі даних [9]. Згіно щорічному опитуванню Rexer's Annual Data Miner Survey в 2010 році, більшість (43%) серед опитаних датамайнерів (спеціалістів з аналізу даних) використовують в своїй роботі середовище R [10].
Приклади коду R [ред.]
Наступні приклади [11] ілюструють базовий синтакс мови програмування R використовуючи інтерфейс командного рядка:
Приклад 1 [ред.]
Створення числового і символьного векторів
> # Все що за символом # інтерпретується як коментар
> x <- c(1,2,3,4,5,6,7,8,9,10) # Створення числового вектора
> y <- 2^x # піднесення числа до степеня х
> y # перегляд змісту об'єкта y, аналогічно print(y)
[1] 2 4 8 16 32 64 128 256 512 1024
> b1 <- c("Kharkiv","Kyiv","Lviv") # символьний вектор
> b1
[1] "Kharkiv" "Kyiv" "Lviv"
Приклад 2 [ред.]
Генерація випадкових чисел нормального розподілу і побудова гістограми
> x <- rnorm(1000) # генерація 1000 випадкових чисел
# з розподілу Гауса
> histogram <- hist(x, breaks=50, plot=FALSE) # розрахунок гістограми для змінної x,
# кількість інтервалів 50
> plot(histogram, col="blue",border="red") # рисунок гістограми за допомогою функції plot()
Пакети/Бібліотеки [ред.]
Можливості R значно розширюються за рахунок додаткових пакетів (бібліотек). Пакети розробляються безпосередньо самими користувачами R. Існує більше 4500 пакетів, доступних на сайті Comprehensive R Archive Network (CRAN), Omegahat , Bioconductor, R-Forge. [12].
На сторінці "Task View" вебсайту CRAN розміщено список напрямків (Фінанси, Генетика, Хеміометрія і Математична Фізика, Навколишнє середовище, Суспільні науки) в яких використовується R і для яких доступні пакети на сайті CRAN.
Графічні Редактори Скриптів та IDE [ред.]
Для роботи з R існує ряд графічних інтерфейсів (GUI): [ред.]
- Графічна оболнонка RGui разом з командною оболонкою (терміналом) R Console входять до базового пакету R в версії для Windows
- RStudio - зручне кросплатформне середовище розробки з відкритим кодом (існує можливість запуску на віддаленому linux сервері).
- RKward – розширюване середовище розробки IDE
- RapidMiner і розширення RapidMiner R - середовище розробки для аналізу і обробки даних з використанням R, WEKA
- Java Gui for R ( JGR) – кроссплатформний термінал і редактор R написаний на Java
- Deducer - графічний інтерфейс для проведення аналізів даних з використанням системи меню ( подібний до SPSS ). Розроблений для використання разом з JGR та RGui.
- Rattle GUI – кроссплатформний графічний інтерфейс розроблений для [en.wikipedia.org/wiki/Data_mining датамайнінгу] (збору і аналізу даних).
- R Commander – кроссплатформний GUI з системою меню і доступними додатковими плагінами ( базується Tcl/Tk )
- RExcel – додаток до Microsoft Excel, який дозволяє використовувати можливості R
- Sage – середовище для проведення математичних розрахунків з використанням інтерфесу веб-браузера, бібліотек R і підтримкою rpy
- Red-R – інтерфейс для аналізу, що використовує R
- Tinn-R – графічний інтерфейс
Текстові редактори та середовища розробки (IDE) з частковою підтримкою R: [ред.]
gedit, Bluefish, IDE Eclipse, Kate,[13] Vim, Emacs (Emacs Speaks Statistics ), Crimson Editor, ConTEXT, Tinn-R[14], Geany, jEdit, Syn, TextMate — The Missing Editor for Mac OS X, SciTE, WinEdt (R Package RWinEdt), WPE, notepad++[15] і SciViews.
Взаємодія з іншими мовами програмування [ред.]
Функціонал R доступний для використання в мовах програмуваннях Python (за допомогою пакету RPy[16]), Perl (за допомогою модуля Statistics::R[17] ) і Ruby (за допомогою RSRuby[18] ).
Підтримка R пропієтарними програмними продуктами [ред.]
Деякі пропієтарні програмні продукти призначені для аналізу статистичних даних (напр. SPSS, STATISTICA[19], SAS[20] ) містять розширення, розроблені з метою інтеграції в свої структури функціоналу R .
Заснована в 2007 році компанія Revolution Analytics розпочала комерційну підтримку версії R під назвою ParallelR розробленої спеціально для кластерів робочих станцій. В 2011 з'явилася можливість зчитувати і записувати дані в формат файлів SAS за допомогою пропієтарного Enterprise R.[21].
Див. також [ред.]
- Наукова візуалізація
- Статистика
- Список статистичного ПЗ (англ.)
- Порівняння статистичних пакетів (англ.)
- Список ПЗ для чисельних обрахунків (англ.)
- Порівняння програм для чисельних обрахунків (англ.)
- Sweave
- ggplot2
Українська література з R [ред.]
- Вступ до R на прикладах Віктор Гнатюк ХНЕУ 2010
Посилання [ред.]
- ↑ Michael J. Crawley (2007). The R Book. John Wiley & Sons. ISBN 978-0-470-51024-7.
- ↑ «Robert Gentleman's home page». Процитовано 2009-07-20.
- ↑ «Free Software Foundation (FSF) Free Software Directory: GNU R». Процитовано 2010-07-05.
- ↑ «What is R?». Процитовано 2009-04-28.
- ↑ Duncan Temple Lang, Calling R from Java, http://www.omegahat.org/RSJava/RFromJava.pdf, процитовано 2010-07-05
- ↑ W. N. Venables та B. D. Ripley (2002). Modern Applied Statistics with S (вид. четверте). Springer. ISBN 978-0-387-95457-8.
- ↑ «Speed comparison of various number crunching packages (version 2)». SciView. Процитовано 2007-11-03.
- ↑ Leisch F Sweave, Part I: Mixing R and LaTeX: A short introduction to the Sweave file format and corresponding R functions // R News. — Т. 2. — (2002) (3) С. 28–31.
- ↑ Vance, Ashlee (2009-01-06). «Data Analysts Captivated by R's Power». New York Times. Процитовано 2009-04-28. «R is also the name of a popular programming language used by a growing number of data analysts inside corporations and academia. It is becoming their lingua franca...»
- ↑ http://www.rexeranalytics.com/Data-Miner-Survey-Results-2010.html
- ↑ Віктор Гнатюк (2010). Вступ до R на прикладах.
- ↑ Robert A. Muenchen. «The Popularity of Data Analysis Software».
- ↑ «Syntax Highlighting». Kate Development Team. Архів оригіналу за 2008-07-07. Процитовано 2008-07-09.
- ↑ «Tinn-R Editor - GUI for R Language and Environment». Tinn-R Team. Процитовано 2010-11-07.
- ↑ «NppToR: R in Notepad++». sourceforge.net. Процитовано 2010-07-11.
- ↑ RPy home page
- ↑ Statistics::R page on CPAN
- ↑ RSRuby rubyforge project
- ↑ http://www.statsoft.com/solutions/r-language-platform/
- ↑ http://www.sas.com/news/preleases/RintegrationSGF09.html
- ↑ 'Red Hat for stats' goes toe-to-toe with SAS
Зовнішні лінки / Ресурси інтернету [ред.]
- Офіційний вебсайт проекту R
- Wiki проекту R
- CRAN: Архів файлів R
- R books розширений список літератури з мови програмування R
- The R Graphical Manual, колекція графіків більшості пакетів R
- R seek фронтенд до пошукового сервісу Google з метою полегшення знаходження результатів пов'язаних з мовою програмування R
- R-bloggers Агрегатор блогів на тематику з використання R

