R Обяснен език за програмиране

R е език за програмиране с отворен код и софтуерна среда за статистически изчисления и графики. Това е един от основните езици, използвани както от учените, така и от статистиците. Поддържа се от Фондация R за статистически изчисления и голяма общност от разработчици с отворен код. Тъй като R използва интерфейс на командния ред, може да има стръмна крива на обучение за някои хора, които са свикнали да използват програми, фокусирани върху GUI като SPSS и SAS, така че разширенията за R като RStudio могат да бъдат много полезни. Тъй като R е програма с отворен код и е свободно достъпна, има голяма атракция за академичните среди, чийто достъп до статистически програми се регулира чрез асоциирането им към различни колежи или университети.

Инсталация

Първото нещо, което трябва да започнете с R, е да го изтеглите от официалния му сайт според вашата операционна система.

Популярни R инструменти и пакети

  • RStudio е интегрирана среда за разработка (IDE) за R. Той включва конзола, редактор за подчертаване на синтаксис, който поддържа директно изпълнение на код, както и инструменти за начертаване, история, отстраняване на грешки и управление на работното пространство.
  • Всеобхватната R архивна мрежа (CRAN) е водещ източник за R инструменти и ресурси.
  • Tidyverse е опитна колекция от R пакети, предназначени за наука за данни като ggplot2, dplyr, readr, tidyr, purr, tibble.
  • data.table е изпълнение на база, data.frameфокусирана върху подобрена производителност и кратък, гъвкав синтаксис.
  • Лъскава рамка за изграждане на уеб приложения в стил на табло в R.

Типове данни в R

Вектор

Това е последователност от елементи от данни от същия основен тип. Например:

> o  p  q  o;p;q [1] 1.0 2.0 5.3 6.0 -2.0 4.0 [1] "one" "two" "three" "four" "five" "six" [1] TRUE TRUE FALSE TRUE FALSE

Матрица

Това е двуизмерен правоъгълен набор от данни. Компонентите в матрицата също трябва да бъдат от същия основен тип като вектор. Например:

> m = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE) > m >[,1] [,2] [,3] [1,] "a" "a" "b" [2,] "c" "b" "a"

Рамка за данни

Това е по-общо от матрицата, тъй като различните колони могат да имат различни основни типове данни. Например:

> d  e  f  mydata  names(mydata)  mydata

Списъци

Това е R-обект, който може да съдържа много различни видове елементи в него като вектори, функции и дори друг списък вътре в него. Например:

> list1  list1 [[1]] [1] 2 5 3 [[2]] [1] 21.3 [[3]] function (x) .Primitive("sin")

Функции в R

Функцията ви позволява да дефинирате код за многократна употреба, който може да бъде изпълнен многократно в рамките на вашата програма.

Функциите могат да бъдат именувани и извиквани многократно или могат да се изпълняват анонимно на място (подобно на ламбда функциите в python).

Разработването на пълно разбиране на R функциите изисква разбиране на средите. Средата е просто начин за управление на обекти. Пример за среди в действие е, че можете да използвате излишно име на променлива в дадена функция, което няма да бъде засегнато, ако по-голямото изпълнение вече има същата променлива. Освен това, ако функция извика променлива, която не е дефинирана във функцията, тя ще провери средата на по-високо ниво за тази променлива.

Синтаксис

В R дефиницията на функция има следните характеристики:

  1. Ключовата дума function
  2. име на функция
  3. входни параметри (по избор)
  4. някакъв блок код за изпълнение
  5. оператор за връщане (по избор)
# a function with no parameters or returned values sayHello() = function(){ "Hello!" } sayHello() # calls the function, 'Hello!' is printed to the console # a function with a parameter helloWithName = function(name){ paste0("Hello, ", name, "!") } helloWithName("Ada") # calls the function, 'Hello, Ada!' is printed to the console # a function with multiple parameters with a return statement multiply = function(val1, val2){ val1 * val2 } multiply(3, 5) # prints 15 to the console

Функциите са блокове с код, които могат да бъдат използвани повторно просто чрез извикване на функцията. Това позволява лесно, елегантно повторно използване на кода, без изрично пренаписване на раздели на кода. Това прави кода едновременно по-четлив, улеснява отстраняването на грешки и ограничава грешките при писане.

Функциите в R се създават с помощта на functionключовата дума, заедно с името на функцията и параметрите на функциите в скоби.

Най return()функция може да се използва от функцията да връща стойност, и обикновено се използва, за да принуди предсрочно прекратяване на функция с върната стойност. Алтернативно, функцията ще върне крайната отпечатана стойност.

# return a value explicitly or simply by printing sum = function(a, b){ c = a + b return(c) } sum = function(a, b){ a + b } result = sum(1, 2) # result = 3

Можете също така да дефинирате стойности по подразбиране за параметрите, които R ще използва, когато променлива не е посочена по време на извикване на функция.

sum = function(a, b = 3){ a + b } result = sum(a = 1) # result = 4

Можете също така да предадете параметрите в желания ред, като използвате името на параметъра.

result = sum(b=2, a=2) # result = 4

R може да приема и допълнителни, незадължителни параметри с '...'

sum = function(a, b, ...){ a + b + ... } sum(1, 2, 3) #returns 6

Функциите могат да се изпълняват и анонимно. Те са много полезни в комбинация със семейството от функции „apply“.

# loop through 1, 2, 3 - add 1 to each sapply(1:3, function(i){ i + 1 })

Бележки

Ако дефиницията на функция включва аргументи без посочени стойности по подразбиране, стойностите за тези стойности трябва да бъдат включени.

sum = function(a, b = 3){ a + b } sum(b = 2) # Error in sum(b = 2) : argument "a" is missing, with no default

Променливите, дефинирани в дадена функция, съществуват само в обхвата на тази функция, но ще проверят по-голяма среда, ако променливата не е посочена

double = function(a){ a * 2 } double(x) # Error in double(x) : object 'x' not found double = function(){ a * 2 } a = 3 double() # 6

Вградени функции в R

  • R се предлага с много функции, които можете да използвате за извършване на сложни задачи като произволно вземане на проби.
  • Например можете да закръглите число с round()или да изчислите неговия факториал с factorial().
> round(4.147) [1] 4 > factorial(3) [1] 6 > round(mean(1:6)) [1] 4
  • Данните, които предавате във функцията, се наричат ​​аргумент на функцията.
  • You can simulate a roll of the die with R’s sample()function. The sample() function takes two arguments:a vector named x and a number named size. For example:
> sample(x = 1:4, size = 2) [] 4 2 > sample(x = die, size = 1) [] 3 >dice dice [1] 2 4 >sum(dice) [1] 6
  • If you’re not sure which names to use with a function, you can look up the function’s arguments with args.
> args(round) [1] function(x, digits=0)

Objects in R

R allows to save the data by storing it inside an R object.

What’s an object?

It is just a name that you can use to call up stored data. For example, you can save data into an object like a or b.

> a  a [1] 5

How to create an Object in R?

  1. To create an R object, choose a name and then use the less-than symbol, <, followed by a minus sign, -, to save data into it. This combination looks like an arrow, <-. R will make an object, give it your name, and store in it whatever follows the arrow.
  2. When you ask R what’s in a, it tells you on the next line. For example:
> die  die [1] 1 2 3 4 5 6
  1. You can name an object in R almost anything you want, but there are a few rules. First, a name cannot start with a number. Second, a name cannot use some special symbols, like ^, !, $, @, +, -, /, or *:
  2. R also understands capitalization (or is case-sensitive), so name and Name will refer to different objects.
  3. You can see which object names you have already used with the function ls().

More Information:

  • Learn R programming language basics in just 2 hours with this free course on statistical programming
  • An introduction to web scraping using R
  • An introduction to aggregates in R: a powerful tool for playing with data