Содержание
Язык R
Общее описание языка R
Простой и полезный язык для статистики, машинного обучения и Data Mining'а.История создания
Основы
Программа «Hello, world!»
#это однострочный комментарий HWstr <- "Hello, world!" print(HWstr)
#в R нет многострочных комментарией "Hello, world!" -> HWStr #стрелочка работает в обе стороны HWstr #так удобнее всего, наверное
(HWstr <- "Hello, world!") #иногда так удобно
R как калькулятор
Все имеющиеся т.н. "статистические пакеты" можно условно разделить на три категории:- библиотеки высокоуровневых ЯП (Seismic UNIX в Си, Pandas в Python)
- "взбесившиеся" научные калькуляторы: помимо R к ним относятся GNU Octave, Gretl (GNU Regression, Econometrics and Times-series Library), GAUSS.
- "взбесившиеся" табличные процессоры: работа с ними напоминает MS Excel, у которого оставили только VBA-редактор(например, SAS Base -- фактический стандарт в банковской и страховой индустриях, STATA или Statistica) или существенно урезали возможности редактирования редактирования ячеек и "кнопочные" функции (SPSS и SAS Enterprise Guide).
R можно использовать как хороший научный и статистический калькулятор.
2 + 2 #должен вернуть 4, но кто ж его знает
a <- 2 b <- 3 a + b #скорее всего вернет 5, но не уверен
c <- 3 c <- c + 5 c #тут я просто теряюсь в догадках, но, может быть, вернет 8
Функции
#квадрат числа Func.One <- function(x) x^2 Func.One(2.75) #вернет 7.5625
#экспонента числа минус его куб Func.Two <- function(x){ result <- exp(x) result <- result - x**3 return(result) } Func.Two(6.5) #вернет 390.5166
Вычисление факториала
#инкрементное решение Func.Factorail.Iter <- function(n){ #знак ";" обязательно нужен только в таких случаях записи более одной команды в строчку stopifnot(n > 0); factorial <- 1 for (i in 1:n){ factorial <- factorial * i } return(factorial) } Func.Factorail.Iter(5) #должен вернуть 120
#рекурсивное решение Func.Factorial.Recur <- function(n){ stopifnot(n >= 0) if(n == 0){ return(1) } else{ return(n * Func.Factorial.Recur(n - 1)) } } Func.Factorial.Recur(4) #должен вернуть 24
Числа Фибоначчи
#F = {0, 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...} Func.Fibonacci <- function(n){ stopifnot(n > 0) if(n == 1){ return(0) } else if(n == 2){ #обратите внимание на пробел между else и if return(1) } else{ return(Func.Fibonacci(n - 1) + Func.Fibonacci(n - 2)) } } Func.Fibonacci(8) #вернет 13
Использование языка
Литература
- 1 R Language Definition. Version 3.1.2 (2014-10-31) DRAFT / R Core Team - 2014 - 60 p.
- http://cran.r-project.org/doc/manuals/R-lang.pdf
- Venables W. N., Smith and the R Core Team D. M. An Introduction to R. Notes on R: A Programming Environment for Data Analysis and Graphics. Version 3.1.2 (2014-10-31) / W. N. Venables, D. M. Smith and the R Core Team - 2014 - 105 p. : http://cran.r-project.org/doc/manuals/R-intro.pdf
- Paradis E. R for beginners / Paradis E. - 2005 - 72 p. : http://cran.r-project.org/doc/contrib/Paradis-rdebuts_en.pdf