Пояснення мови програмування R

R - це мова програмування з відкритим кодом та програмне середовище для статистичних обчислень та графіки. Це одна з основних мов, якою користуються як науковці, так і статистики. Він підтримується Фондом статистичних обчислень R та великою спільнотою розробників з відкритим кодом. Оскільки R використовував інтерфейс командного рядка, для деяких людей, які звикли використовувати програми, орієнтовані на графічний інтерфейс, такі як 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