R — мова програмування і програмне середовище для статистичних обчислень, аналізу та зображення даних в графічному вигляді. Розробка R відбувалась під істотним впливом двох наявних мов програмування: мови програмування S з семантикою, успадкованою від Scheme. R названа за першою літерою імен її засновників Роса Іхаки (Ross Ihaka) та Роберта Джентлмена, (Robert Gentleman) працівників Оклендського Університету в Новій Зеландії. Незважаючи на деякі принципові відмінності, більшість програм, написаних мовою програмування S запускаються в середовищі R.
R | |
---|---|
Парадигма | функційне програмування, масивове програмування, об'єктно-орієнтоване програмування[1], імперативне програмування, Рефлексія і процедурне програмування |
Дата появи | серпень 1993[2] |
Творці | [en] та [en] |
Розробник | R Core Team |
Останній реліз | 3.6.1 ("Action of the Toes") (5 липня 2019 ) |
Система типізації | динамічна |
Під впливом від | S, Scheme |
Мова реалізації | C[5], Fortran[5] і R[5] |
Операційна система | декілька:Linux/Unix, Windows, Mac OS X |
Ліцензія | GNU General Public License |
Репозиторій вихідного коду | svn.r-project.org/R/trunk/ |
Вебсайт | www.r-project.org |
|
R поширюється безкоштовно за ліцензією GNU General Public License у вигляді вільнодоступного вихідного коду або відкомпільованих бінарних версій більшості операційних систем: Linux, FreeBSD, Microsoft Windows, Mac OS X, Solaris. R використовує текстовий інтерфейс, однак існують різні графічні інтерфейси користувача (див. Графічні Редактори Скриптів та IDE).
R має значні можливості для здійснення статистичних аналізів, включаючи лінійну і нелінійну регресію, класичні статистичні тести, аналіз часових рядів (серій), кластерний аналіз і багато іншого. R легко розбудовується завдяки використанню додаткових функцій і пакетів, доступних на сайті Comprehensive R Archive Network (CRAN) [ 5 січня 2008 у Wayback Machine.]. Більша частина стандартних функцій R написана мовою R, однак існує можливість підключати код, написаний C, або Фортраном. Також за допомогою програмного коду на C або Java можна безпосередньо маніпулювати R об'єктами.
Особливості
R належить до інтерпретованих мов програмування і для роботи використовується командний інтерпретатор. Наприклад, робота R в терміналі має такий вигляд:
> 1+1 [1] 2
R підтримує концепцію об'єктно-орієнтованого програмування (ООП), включаючи generic функції, результат виконання якої залежить від аргументів (типу об'єктів), що передаються generic функції. В мові програмування R всі змінні є об'єктами, кожен об'єкт належить до певного класу. При цьому R має дві класові моделі: S3 та S4. Перша була реалізована від початку існування R, друга була додана у версії 1.7.0 з пакетом methods [ 27 серпня 2013 у Wayback Machine.]. S3 не є справжньою класовою системою, класи S3-об'єкта визначаються простим атрибутом — вектором символьних рядків:
> q <- 1 > class(q) # перевіряємо клас q [1] "numeric" # q - число > class(q) <- c("character", class(q)) # "розширимо" клас q > q [1] 1 attr(,"class") [1] "character" "numeric" # тепер q належить до двох класів
При цьому, при виконанні generic функцій, таких як plot()
чи summary()
, диспетчер методів шукає в таблиці методів метод, який узгоджується з іменем першого аргумента.
# Генеруємо вибірку з повторами з множини перших 5 літер, розміром у 20 елементів. # Після чого будуємо факторну таблицю (contingency table) > m <- table(sample(LETTERS[1:5], size = 20, replace = T)) # щоб дізнатись значення змінної - просто вводимо її ім'я в консолі > m A B C D E 4 5 3 2 6 > class(m) [1] "table" # m - факторна таблиця > summary(m) # фактично виконується summary.table() Number of cases in table: 20 Number of factors: 1 > as.vector(m) # m як вектор [1] 4 5 3 2 6 > summary(as.vector(m)) # виконується summary.default() Min. 1st Qu. Median Mean 3rd Qu. Max. 2 3 4 4 5 6
Хоча S3 проста система, але вона виявилась досить потужною і зручною саме для інтерактивного аналізу даних. S4 класи не такі "інтерактивні" і вони більше підходять для написання, наприклад, бібліотек. При створенні S4 класу потрібно вказати його ім'я і слоти (тобто поля). При цьому можна вказати від яких класів походить цей клас (це можуть бути S4 і S3 класи), прототип і функцію валідації (за замовченням перевіряється лише відповідність типу слоту і його значення, але можна ввести перевірку самого значення, наприклад, допускати лише числа менші 10).
# Визначаємо S4-клас AClass <- setClass("AClass" # ім'я класу , representation(adata = "character", alength = "numeric") # імена слотів та їхні типи/класи , prototype(adata = "Hello world!", alength = 12) # прототип класу , validity = function(object){ # функція валідації if(object@alength < 15) return(T) # якщо alength < 15, то все ок F # інакше - помилка } # наслідуємо AClass додавши новий слот ) BClass <- setClass("BClass", contains= "AClass", slots = c(bdata = "numeric")) # створюємо об'єкт класу AClass > AClass() An object of class "AClass" # оскільки в конструктор нічого не було передано Slot "adata": # то створюється прототип [1] "Hello world!" Slot "alength": [1] 12 # створюємо інший AClass-об'єкт > AClass(adata = "Hello another world!", alength = nchar("Hello another world!")) Error in validObject(.Object) : invalid class “AClass” object: FALSE # alength >= 15, тому генерується помилка
S4-generic функції також мають певні відмінності від їхніх S3 побратимів. Головною відмінністю є можливість визначення сигнатури для generic-функції і для її методів, тобто перевіряється тип не лише першого аргументу, а й решти. При цьому в сигнатурі можна використати спеціальні типи ANY та MISSING, які вказують на те, що аргумент може бути будь-якого типу, або бути обов'язково пропущеним, відповідно.
Оскільки в R функції є об'єктами першого класу (тобто їх можна передавати як аргументи в інші функції та присвоювати змінним), то можна створити клас від типу function:
# визначимо функцію, яка просто збільшує аргумент на 10 і повертає результат foo <- function(p){ p + 10; } # наслідуємо клас від функції CFun <- setClass("CFun", contains = c("function") , slots = c(param = "numeric") ) # визначимо метод generic-функції show для класу CFun setMethod("show", "CFun", function(object) { cat("Show method for CFun objects\n") # виводимо рядок cat(object(object@param)) # використовуємо CFun-об'єкт як функцію }) # створимо новий об'єкт класу CFun > cf.obj <- CFun(foo, param = 13) # тепер введемо в консолі ім'я створеного об'єкту, щоб подивитись його значення # при цьому буде знайдено відповідний метод функції show > cf.obj Show method for CFun objects 23 # == foo(13) == cf.obj(cf.obj@param)
Важливою особливістю R є тотальне використання того, що називають, recycling:
# Створюємо вектор чисел від 1 до 10 > x <- 1:10 > x [1] 1 2 3 4 5 6 7 8 9 10 # кожен елемент х порівнюється з 4 # фактично х порівнюється з 10-елементним вектором, що складається лише з 4 # говорять, що 4 була recycled, перероблена > x > 4 [1] FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE # додамо 10 до елементів х окрім 4,5 та 6-го > x[-(4:6)] + 10 [1] 11 12 13 17 18 19 20 # якщо довжина довшого об'єктів не ділиться націло на довжину коротшого, то виводиться попредження # але операція все одно виконується > x + c(10, 100, 1000) [1] 11 102 1003 14 105 1006 17 108 1009 20 Warning message: In x + c(10, 100, 1000) : longer object length is not a multiple of shorter object length
Хоча R орієнтована на розв'язок і аналіз статистичних задач, вона може використовуватися для матричних обрахунків з порівняльною швидкодією до математичних пакетів GNU Octave або MATLAB.
Створено багато пакетів для статистичних обчислень, біоінформатики, оптимізації тощо (див. "Пакети/Бібліотеки").
Середовище R містить засоби для візуалізації результатів обчислень (двовимірні, тривимірні графіки, діаграми, гістограми, діаграми (схеми) Ганта тощо). Графічні можливості R дозволяють створювати високоякісні графіки з різними атрибутами, зокрема математичні формули і символи.
Іншою особливістю є функція Sweave, яка дозволяє інтеграцію і виконання коду R в документах, написаних за допомогою LaTeX з метою створення динамічних звітів.
R de-facto став стандартом у міжнародній спільноті спеціалістів в галузі статистики, і широко використовується в розробках статистичних програм та аналізі даних. Згідно щорічному опитуванню Rexer's Annual Data Miner Survey в 2010 році, більшість (43%) серед опитаних спеціалістів з аналізу даних використовують у своїй роботі середовище R.
Приклади коду R
Приклади ілюструють базовий синтаксис мови програмування 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) [ 5 січня 2008 у Wayback Machine.], , Bioconductor [ 16 липня 2011 у Wayback Machine.], R-Forge [ 6 липня 2011 у Wayback Machine.]. .
На сторінці "Task View" вебсайту CRAN [ 20 червня 2010 у Wayback Machine.] розміщено список напрямків (Фінанси, Генетика, Хеміометрія і Математична Фізика, Навколишнє середовище, Суспільні науки), в яких використовується R і для яких доступні пакети на сайті.
Графічні Редактори Скриптів та IDE
Для роботи з R існує кілька графічних інтерфейсів (GUI)
- Графічна оболонка RGui разом з командною оболонкою (терміналом) R Console входять до базового пакету R у версії для Windows
- RStudio — зручне кросплатформне середовище розробки з відкритим кодом (існує можливість запуску на віддаленому linux сервері).
- RKWard — розширюване середовище розробки IDE
- RapidMiner [ 22 червня 2011 у Wayback Machine.] і розширення RapidMiner R — середовище розробки для аналізу і обробки даних з використанням R, WEKA
- Java Gui for R (JGR) [ 30 червня 2011 у Wayback Machine.] — кросплатформний термінал і редактор R написаний на Java
- Deducer [ 24 жовтня 2016 у Wayback Machine.] — графічний інтерфейс для аналізів даних з використанням системи меню (подібний до SPSS). Розроблений для використання разом з JGR та RGui.
- Rattle GUI [ 5 липня 2011 у Wayback Machine.] — кросплатформний графічний інтерфейс, розроблений для добування даних (збору та аналізу даних).
- R Commander — кросплатформний GUI з системою меню і доступними додатковими плагінами (базується Tcl/Tk)
- RExcel — додаток до Microsoft Excel, який дозволяє використовувати можливості R
- Sage — середовище для математичних розрахунків з використанням інтерфейсу веббраузера, бібліотек R і підтримкою rpy
- Red-R — інтерфейс для аналізу, що використовує R
- Tinn-R [ 11 червня 2011 у Wayback Machine.] — графічний інтерфейс
Середовища розробки (IDE)
Текстові редактори та середовища розробки (IDE) з частковою підтримкою R
gedit, Bluefish [ 5 липня 2011 у Wayback Machine.], IDE Eclipse, Kate,Vim, Emacs (Emacs Speaks Statistics [ 2 травня 2022 у Wayback Machine.]), Crimson Editor [ 17 грудня 2017 у Wayback Machine.], ConTEXT [ 27 червня 2011 у Wayback Machine.], Tinn-R, Geany [ 28 січня 2021 у Wayback Machine.], jEdit, Syn [ 20 серпня 2011 у Wayback Machine.], TextMate — The Missing Editor for Mac OS X [ 6 вересня 2008 у Wayback Machine.], SciTE [ 20 лютого 2011 у Wayback Machine.], WinEdt [ 26 квітня 2007 у Wayback Machine.] (R Package RWinEdt), , і SciViews.
Взаємодія з іншими мовами програмування
R доступна для використання у мовах програмуваннях Python (за допомогою пакета RPy), Perl (за допомогою модуля Statistics::R ) і Ruby (за допомогою RSRuby ).
Підтримка R пропрієтарними програмними продуктами
Деякі пропрієтарні програмні продукти, призначені для аналізу статистичних даних (напр. SPSS, STATISTICA, SAS), мають розширення, розроблені для інтеграції у свої структури функціоналу R.
Заснована 2007 року компанія Revolution Analytics розпочала комерційну підтримку версії R під назвою ParallelR, розробленої спеціально для кластерів робочих станцій. В 2011 з'явилася можливість зчитувати і записувати дані у формат файлів SAS за допомогою пропієтарного Enterprise R.
Див. також
- Наукова візуалізація
- Статистика
- [en]
- [en]
- [en]
- [en]
- Sweave
- ggplot2
Українська література з R
- Вступ до R на прикладах [ 7 листопада 2013 у Wayback Machine.] Віктор Гнатюк ХНЕУ 2010
Примітки
- https://cran.r-project.org/doc/manuals/r-release/R-intro.html#Objects
- Ihaka R. R : Past and Future History
- Hornik, Kurt (26 листопада 2015). . The Comprehensive R Archive Network. 2.1 What is R?. Архів оригіналу за 9 липня 2011. Процитовано 5 серпня 2018.
- . Архів оригіналу за 23 січня 2019. Процитовано 5 липня 2019.
- http://librestats.com/2011/08/27/how-much-of-r-is-written-in-r/
- Michael J. Crawley (2007). The R Book. John Wiley & Sons. ISBN .
- Robert Gentleman's home page. Архів оригіналу за 25 червня 2013. Процитовано 20 липня 2009.
- Free Software Foundation (FSF) Free Software Directory: GNU R. Архів оригіналу за 25 червня 2013. Процитовано 5 липня 2010.
- What is R?. Архів оригіналу за 25 червня 2013. Процитовано 28 квітня 2009.
- Duncan Temple Lang, (PDF), архів оригіналу (PDF) за 21 серпня 2010, процитовано 5 липня 2010
- W. N. Venables та B. D. Ripley (2002). Modern Applied Statistics with S (вид. четверте). Springer. ISBN .
- S4 Classes and Methods (PDF). Архів (PDF) оригіналу за 13 серпня 2013. Процитовано 4 серпня 2013.
- Speed comparison of various number crunching packages (version 2). SciView. Архів оригіналу за 25 червня 2013. Процитовано 3 листопада 2007.
- Leisch F (2002). Sweave, Part I: Mixing R and LaTeX: A short introduction to the Sweave file format and corresponding R functions. R News. 2 (3): 28—31.
- Vance, Ashlee (6 січня 2009). . New York Times. Архів оригіналу за 31 жовтня 2017. Процитовано 28 квітня 2009.
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...
- . Архів оригіналу за 15 липня 2011. Процитовано 27 червня 2011.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - Віктор Гнатюк (2010). Вступ до R на прикладах (PDF).[недоступне посилання з червня 2019]
- Robert A. Muenchen. The Popularity of Data Analysis Software. Архів оригіналу за 25 червня 2013. Процитовано 27 червня 2011.
- . Kate Development Team. Архів оригіналу за 7 липня 2008. Процитовано 9 липня 2008.
- Tinn-R Editor - GUI for R Language and Environment. Tinn-R Team. Архів оригіналу за 25 червня 2013. Процитовано 7 листопада 2010.
- NppToR: R in Notepad++. sourceforge.net. Архів оригіналу за 25 червня 2013. Процитовано 11 липня 2010.
- . Архів оригіналу за 18 листопада 2019. Процитовано 12 травня 2022.
- . Архів оригіналу за 1 грудня 2011. Процитовано 9 вересня 2011.
- . Архів оригіналу за 5 липня 2015. Процитовано 9 вересня 2011.
- . Архів оригіналу за 12 червня 2013. Процитовано 9 вересня 2011.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 10 червня 2011. Процитовано 27 червня 2011.
{{}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title () - . Архів оригіналу за 9 жовтня 2011. Процитовано 27 червня 2011.
Посилання
- Офіційний вебсайт проекту R
- CRAN: Архів файлів R [ 5 січня 2008 у Wayback Machine.]
- R books [ 29 квітня 2011 у Wayback Machine.] розширений список літератури з мови програмування R
- The R Graphical Manual [ 29 січня 2012 у Wayback Machine.], колекція графіків більшості пакетів R
- R seek [ 6 травня 2022 у Wayback Machine.] фронтенд до пошукового сервісу Google з метою полегшення знаходження результатів пов'язаних з мовою програмування R
- R-bloggers [ 5 лютого 2010 у Wayback Machine.] Агрегатор блогів на тематику з використання R
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
R mova programuvannya i programne seredovishe dlya statistichnih obchislen analizu ta zobrazhennya danih v grafichnomu viglyadi Rozrobka R vidbuvalas pid istotnim vplivom dvoh nayavnih mov programuvannya movi programuvannya S z semantikoyu uspadkovanoyu vid Scheme R nazvana za pershoyu literoyu imen yiyi zasnovnikiv Rosa Ihaki Ross Ihaka ta Roberta Dzhentlmena Robert Gentleman pracivnikiv Oklendskogo Universitetu v Novij Zelandiyi Nezvazhayuchi na deyaki principovi vidminnosti bilshist program napisanih movoyu programuvannya S zapuskayutsya v seredovishi R RParadigma funkcijne programuvannya masivove programuvannya ob yektno oriyentovane programuvannya 1 imperativne programuvannya Refleksiya i procedurne programuvannyaData poyavi serpen 1993 2 Tvorci en ta en Rozrobnik R Core TeamOstannij reliz 3 6 1 Action of the Toes 5 lipnya 2019 4 roki tomu 2019 07 05 Sistema tipizaciyi dinamichnaPid vplivom vid S SchemeMova realizaciyi C 5 Fortran 5 i R 5 Operacijna sistema dekilka Linux Unix Windows Mac OS XLicenziya GNU General Public LicenseRepozitorij vihidnogo kodu svn r project org R trunk Vebsajt www r project org Instrukciyi u Vikipidruchniku Mediafajli u Vikishovishi R poshiryuyetsya bezkoshtovno za licenziyeyu GNU General Public License u viglyadi vilnodostupnogo vihidnogo kodu abo vidkompilovanih binarnih versij bilshosti operacijnih sistem Linux FreeBSD Microsoft Windows Mac OS X Solaris R vikoristovuye tekstovij interfejs odnak isnuyut rizni grafichni interfejsi koristuvacha div Grafichni Redaktori Skriptiv ta IDE R maye znachni mozhlivosti dlya zdijsnennya statistichnih analiziv vklyuchayuchi linijnu i nelinijnu regresiyu klasichni statistichni testi analiz chasovih ryadiv serij klasternij analiz i bagato inshogo R legko rozbudovuyetsya zavdyaki vikoristannyu dodatkovih funkcij i paketiv dostupnih na sajti Comprehensive R Archive Network CRAN 5 sichnya 2008 u Wayback Machine Bilsha chastina standartnih funkcij R napisana movoyu R odnak isnuye mozhlivist pidklyuchati kod napisanij C C abo Fortranom Takozh za dopomogoyu programnogo kodu na C abo Java mozhna bezposeredno manipulyuvati R ob yektami OsoblivostiR nalezhit do interpretovanih mov programuvannya i dlya roboti vikoristovuyetsya komandnij interpretator Napriklad robota R v terminali maye takij viglyad gt 1 1 1 2 R pidtrimuye koncepciyu ob yektno oriyentovanogo programuvannya OOP vklyuchayuchi generic funkciyi rezultat vikonannya yakoyi zalezhit vid argumentiv tipu ob yektiv sho peredayutsya generic funkciyi V movi programuvannya R vsi zminni ye ob yektami kozhen ob yekt nalezhit do pevnogo klasu Pri comu R maye dvi klasovi modeli S3 ta S4 Persha bula realizovana vid pochatku isnuvannya R druga bula dodana u versiyi 1 7 0 z paketom methods 27 serpnya 2013 u Wayback Machine S3 ne ye spravzhnoyu klasovoyu sistemoyu klasi S3 ob yekta viznachayutsya prostim atributom vektorom simvolnih ryadkiv gt q lt 1 gt class q pereviryayemo klas q 1 numeric q chislo gt class q lt c character class q rozshirimo klas q gt q 1 1 attr class 1 character numeric teper q nalezhit do dvoh klasiv Pri comu pri vikonanni generic funkcij takih yak plot chi summary dispetcher metodiv shukaye v tablici metodiv metod yakij uzgodzhuyetsya z imenem pershogo argumenta Generuyemo vibirku z povtorami z mnozhini pershih 5 liter rozmirom u 20 elementiv Pislya chogo buduyemo faktornu tablicyu contingency table gt m lt table sample LETTERS 1 5 size 20 replace T shob diznatis znachennya zminnoyi prosto vvodimo yiyi im ya v konsoli gt m A B C D E 4 5 3 2 6 gt class m 1 table m faktorna tablicya gt summary m faktichno vikonuyetsya summary table Number of cases in table 20 Number of factors 1 gt as vector m m yak vektor 1 4 5 3 2 6 gt summary as vector m vikonuyetsya summary default Min 1st Qu Median Mean 3rd Qu Max 2 3 4 4 5 6 Hocha S3 prosta sistema ale vona viyavilas dosit potuzhnoyu i zruchnoyu same dlya interaktivnogo analizu danih S4 klasi ne taki interaktivni i voni bilshe pidhodyat dlya napisannya napriklad bibliotek Pri stvorenni S4 klasu potribno vkazati jogo im ya i sloti tobto polya Pri comu mozhna vkazati vid yakih klasiv pohodit cej klas ce mozhut buti S4 i S3 klasi prototip i funkciyu validaciyi za zamovchennyam pereviryayetsya lishe vidpovidnist tipu slotu i jogo znachennya ale mozhna vvesti perevirku samogo znachennya napriklad dopuskati lishe chisla menshi 10 Viznachayemo S4 klas AClass lt setClass AClass im ya klasu representation adata character alength numeric imena slotiv ta yihni tipi klasi prototype adata Hello world alength 12 prototip klasu validity function object funkciya validaciyi if object alength lt 15 return T yaksho alength lt 15 to vse ok F inakshe pomilka nasliduyemo AClass dodavshi novij slot BClass lt setClass BClass contains AClass slots c bdata numeric stvoryuyemo ob yekt klasu AClass gt AClass An object of class AClass oskilki v konstruktor nichogo ne bulo peredano Slot adata to stvoryuyetsya prototip 1 Hello world Slot alength 1 12 stvoryuyemo inshij AClass ob yekt gt AClass adata Hello another world alength nchar Hello another world Error in validObject Object invalid class AClass object FALSE alength gt 15 tomu generuyetsya pomilka S4 generic funkciyi takozh mayut pevni vidminnosti vid yihnih S3 pobratimiv Golovnoyu vidminnistyu ye mozhlivist viznachennya signaturi dlya generic funkciyi i dlya yiyi metodiv tobto pereviryayetsya tip ne lishe pershogo argumentu a j reshti Pri comu v signaturi mozhna vikoristati specialni tipi ANY ta MISSING yaki vkazuyut na te sho argument mozhe buti bud yakogo tipu abo buti obov yazkovo propushenim vidpovidno Oskilki v R funkciyi ye ob yektami pershogo klasu tobto yih mozhna peredavati yak argumenti v inshi funkciyi ta prisvoyuvati zminnim to mozhna stvoriti klas vid tipu function viznachimo funkciyu yaka prosto zbilshuye argument na 10 i povertaye rezultat foo lt function p p 10 nasliduyemo klas vid funkciyi CFun lt setClass CFun contains c function slots c param numeric viznachimo metod generic funkciyi show dlya klasu CFun setMethod show CFun function object cat Show method for CFun objects n vivodimo ryadok cat object object param vikoristovuyemo CFun ob yekt yak funkciyu stvorimo novij ob yekt klasu CFun gt cf obj lt CFun foo param 13 teper vvedemo v konsoli im ya stvorenogo ob yektu shob podivitis jogo znachennya pri comu bude znajdeno vidpovidnij metod funkciyi show gt cf obj Show method for CFun objects 23 foo 13 cf obj cf obj param Vazhlivoyu osoblivistyu R ye totalne vikoristannya togo sho nazivayut recycling Stvoryuyemo vektor chisel vid 1 do 10 gt x lt 1 10 gt x 1 1 2 3 4 5 6 7 8 9 10 kozhen element h porivnyuyetsya z 4 faktichno h porivnyuyetsya z 10 elementnim vektorom sho skladayetsya lishe z 4 govoryat sho 4 bula recycled pereroblena gt x gt 4 1 FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE dodamo 10 do elementiv h okrim 4 5 ta 6 go gt x 4 6 10 1 11 12 13 17 18 19 20 yaksho dovzhina dovshogo ob yektiv ne dilitsya nacilo na dovzhinu korotshogo to vivoditsya popredzhennya ale operaciya vse odno vikonuyetsya gt x c 10 100 1000 1 11 102 1003 14 105 1006 17 108 1009 20 Warning message In x c 10 100 1000 longer object length is not a multiple of shorter object length Hocha R oriyentovana na rozv yazok i analiz statistichnih zadach vona mozhe vikoristovuvatisya dlya matrichnih obrahunkiv z porivnyalnoyu shvidkodiyeyu do matematichnih paketiv GNU Octave abo MATLAB Stvoreno bagato paketiv dlya statistichnih obchislen bioinformatiki optimizaciyi tosho div Paketi Biblioteki Seredovishe R mistit zasobi dlya vizualizaciyi rezultativ obchislen dvovimirni trivimirni grafiki diagrami gistogrami diagrami shemi Ganta tosho Grafichni mozhlivosti R dozvolyayut stvoryuvati visokoyakisni grafiki z riznimi atributami zokrema matematichni formuli i simvoli Inshoyu osoblivistyu ye funkciya Sweave yaka dozvolyaye integraciyu i vikonannya kodu R v dokumentah napisanih za dopomogoyu LaTeX z metoyu stvorennya dinamichnih zvitiv R de facto stav standartom u mizhnarodnij spilnoti specialistiv v galuzi statistiki i shiroko vikoristovuyetsya v rozrobkah statistichnih program ta analizi danih Zgidno shorichnomu opituvannyu Rexer s Annual Data Miner Survey v 2010 roci bilshist 43 sered opitanih specialistiv z analizu danih vikoristovuyut u svoyij roboti seredovishe R Prikladi kodu RPrikladi ilyustruyut bazovij sintaksis movi programuvannya R z vikoristannyam interfejsu komandnogo ryadka Priklad 1 Stvorennya chislovogo i simvolnogo vektoriv gt Vse sho za simvolom interpretuyetsya yak komentar gt x lt c 1 2 3 4 5 6 7 8 9 10 Stvorennya chislovogo vektora gt y lt 2 x pidnesennya chisla do stepenya h gt y pereglyad zmistu ob yekta y analogichno print y 1 2 4 8 16 32 64 128 256 512 1024 gt b1 lt c Kharkiv Kyiv Lviv simvolnij vektor gt b1 1 Kharkiv Kyiv Lviv Gistograma zgenerovana za dopomogoyu kodu R Priklad 2Priklad 2 Generaciya vipadkovih chisel normalnogo rozpodilu i pobudova gistogrami gt x lt rnorm 1000 generaciya 1000 vipadkovih chisel z rozpodilu Gausa gt histogram lt hist x breaks 50 plot FALSE rozrahunok gistogrami dlya zminnoyi x kilkist intervaliv 50 gt plot histogram col blue border red zobrazhennya gistogrami za dopomogoyu funkciyi plot Paketi BibliotekiMozhlivosti R znachno rozshiryuyutsya dodatkovimi paketami bibliotekami Paketi rozroblyayutsya bezposeredno koristuvachami R Isnuye ponad 4500 paketiv dostupnih na sajti Comprehensive R Archive Network CRAN 5 sichnya 2008 u Wayback Machine Bioconductor 16 lipnya 2011 u Wayback Machine R Forge 6 lipnya 2011 u Wayback Machine Na storinci Task View vebsajtu CRAN 20 chervnya 2010 u Wayback Machine rozmisheno spisok napryamkiv Finansi Genetika Hemiometriya i Matematichna Fizika Navkolishnye seredovishe Suspilni nauki v yakih vikoristovuyetsya R i dlya yakih dostupni paketi na sajti Grafichni Redaktori Skriptiv ta IDEDlya roboti z R isnuye kilka grafichnih interfejsiv GUI Grafichna obolonka RGui razom z komandnoyu obolonkoyu terminalom R Console vhodyat do bazovogo paketu R u versiyi dlya Windows RStudio zruchne krosplatformne seredovishe rozrobki z vidkritim kodom isnuye mozhlivist zapusku na viddalenomu linux serveri RKWard rozshiryuvane seredovishe rozrobki IDE RapidMiner 22 chervnya 2011 u Wayback Machine i rozshirennya RapidMiner R seredovishe rozrobki dlya analizu i obrobki danih z vikoristannyam R WEKA Java Gui for R JGR 30 chervnya 2011 u Wayback Machine krosplatformnij terminal i redaktor R napisanij na Java Deducer 24 zhovtnya 2016 u Wayback Machine grafichnij interfejs dlya analiziv danih z vikoristannyam sistemi menyu podibnij do SPSS Rozroblenij dlya vikoristannya razom z JGR ta RGui Rattle GUI 5 lipnya 2011 u Wayback Machine krosplatformnij grafichnij interfejs rozroblenij dlya dobuvannya danih zboru ta analizu danih R Commander krosplatformnij GUI z sistemoyu menyu i dostupnimi dodatkovimi plaginami bazuyetsya Tcl Tk RExcel dodatok do Microsoft Excel yakij dozvolyaye vikoristovuvati mozhlivosti R Sage seredovishe dlya matematichnih rozrahunkiv z vikoristannyam interfejsu vebbrauzera bibliotek R i pidtrimkoyu rpy Red R interfejs dlya analizu sho vikoristovuye R Tinn R 11 chervnya 2011 u Wayback Machine grafichnij interfejsSeredovisha rozrobki IDE ShinyTekstovi redaktori ta seredovisha rozrobki IDE z chastkovoyu pidtrimkoyu R gedit Bluefish 5 lipnya 2011 u Wayback Machine IDE Eclipse Kate Vim Emacs Emacs Speaks Statistics 2 travnya 2022 u Wayback Machine Crimson Editor 17 grudnya 2017 u Wayback Machine ConTEXT 27 chervnya 2011 u Wayback Machine Tinn R Geany 28 sichnya 2021 u Wayback Machine jEdit Syn 20 serpnya 2011 u Wayback Machine TextMate The Missing Editor for Mac OS X 6 veresnya 2008 u Wayback Machine SciTE 20 lyutogo 2011 u Wayback Machine WinEdt 26 kvitnya 2007 u Wayback Machine R Package RWinEdt notepad i SciViews Vzayemodiya z inshimi movami programuvannya R dostupna dlya vikoristannya u movah programuvannyah Python za dopomogoyu paketa RPy Perl za dopomogoyu modulya Statistics R i Ruby za dopomogoyu RSRuby Pidtrimka R propriyetarnimi programnimi produktami Deyaki propriyetarni programni produkti priznacheni dlya analizu statistichnih danih napr SPSS STATISTICA SAS mayut rozshirennya rozrobleni dlya integraciyi u svoyi strukturi funkcionalu R Zasnovana 2007 roku kompaniya Revolution Analytics rozpochala komercijnu pidtrimku versiyi R pid nazvoyu ParallelR rozroblenoyi specialno dlya klasteriv robochih stancij V 2011 z yavilasya mozhlivist zchituvati i zapisuvati dani u format fajliv SAS za dopomogoyu propiyetarnogo Enterprise R Div takozhNaukova vizualizaciya Statistika en en en en Sweave ggplot2Ukrayinska literatura z RVstup do R na prikladah 7 listopada 2013 u Wayback Machine Viktor Gnatyuk HNEU 2010Primitkihttps cran r project org doc manuals r release R intro html Objects Ihaka R R Past and Future History d Track Q7369420 Hornik Kurt 26 listopada 2015 The Comprehensive R Archive Network 2 1 What is R Arhiv originalu za 9 lipnya 2011 Procitovano 5 serpnya 2018 Arhiv originalu za 23 sichnya 2019 Procitovano 5 lipnya 2019 http librestats com 2011 08 27 how much of r is written in r Michael J Crawley 2007 The R Book John Wiley amp Sons ISBN 978 0 470 51024 7 Robert Gentleman s home page Arhiv originalu za 25 chervnya 2013 Procitovano 20 lipnya 2009 Free Software Foundation FSF Free Software Directory GNU R Arhiv originalu za 25 chervnya 2013 Procitovano 5 lipnya 2010 What is R Arhiv originalu za 25 chervnya 2013 Procitovano 28 kvitnya 2009 Duncan Temple Lang PDF arhiv originalu PDF za 21 serpnya 2010 procitovano 5 lipnya 2010 W N Venables ta B D Ripley 2002 Modern Applied Statistics with S vid chetverte Springer ISBN 978 0 387 95457 8 S4 Classes and Methods PDF Arhiv PDF originalu za 13 serpnya 2013 Procitovano 4 serpnya 2013 Speed comparison of various number crunching packages version 2 SciView Arhiv originalu za 25 chervnya 2013 Procitovano 3 listopada 2007 Leisch F 2002 Sweave Part I Mixing R and LaTeX A short introduction to the Sweave file format and corresponding R functions R News 2 3 28 31 Vance Ashlee 6 sichnya 2009 New York Times Arhiv originalu za 31 zhovtnya 2017 Procitovano 28 kvitnya 2009 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 Arhiv originalu za 15 lipnya 2011 Procitovano 27 chervnya 2011 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Viktor Gnatyuk 2010 Vstup do R na prikladah PDF nedostupne posilannya z chervnya 2019 Robert A Muenchen The Popularity of Data Analysis Software Arhiv originalu za 25 chervnya 2013 Procitovano 27 chervnya 2011 Kate Development Team Arhiv originalu za 7 lipnya 2008 Procitovano 9 lipnya 2008 Tinn R Editor GUI for R Language and Environment Tinn R Team Arhiv originalu za 25 chervnya 2013 Procitovano 7 listopada 2010 NppToR R in Notepad sourceforge net Arhiv originalu za 25 chervnya 2013 Procitovano 11 lipnya 2010 Arhiv originalu za 18 listopada 2019 Procitovano 12 travnya 2022 Arhiv originalu za 1 grudnya 2011 Procitovano 9 veresnya 2011 Arhiv originalu za 5 lipnya 2015 Procitovano 9 veresnya 2011 Arhiv originalu za 12 chervnya 2013 Procitovano 9 veresnya 2011 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 10 chervnya 2011 Procitovano 27 chervnya 2011 a href wiki D0 A8 D0 B0 D0 B1 D0 BB D0 BE D0 BD Cite web title Shablon Cite web cite web a Obslugovuvannya CS1 Storinki z tekstom archived copy yak znachennya parametru title posilannya Arhiv originalu za 9 zhovtnya 2011 Procitovano 27 chervnya 2011 PosilannyaOficijnij vebsajt proektu R CRAN Arhiv fajliv R 5 sichnya 2008 u Wayback Machine R books 29 kvitnya 2011 u Wayback Machine rozshirenij spisok literaturi z movi programuvannya R The R Graphical Manual 29 sichnya 2012 u Wayback Machine kolekciya grafikiv bilshosti paketiv R R seek 6 travnya 2022 u Wayback Machine frontend do poshukovogo servisu Google z metoyu polegshennya znahodzhennya rezultativ pov yazanih z movoyu programuvannya R R bloggers 5 lyutogo 2010 u Wayback Machine Agregator blogiv na tematiku z vikoristannya R