R можно использовать как калькулятор, и действительно, одно из его основных применений — выполнение сложных математических и статистических расчетов. R может выполнять как простые вычисления, так и более сложные.
Чтобы познакомиться со средой кодирования R, давайте начнем с некоторых основных вычислений. Консоль R также можно использовать как интерактивный калькулятор:

[code language="R"]
› 2 + 3
[1] 5
› 8 / 2
[1] 4
› (2*15) /(3*2)
[1] 5
› log(12)
[1] 2.484907
› sqrt (169)
[1] 13

[/код]

Вы также видите, что эта строка начинается с [1], а не с курсора ›. R говорит вам, что первый элемент ответа равен 5. В данный момент это не кажется очень полезным, но полезность становится более очевидной позже, когда ответы становятся длиннее.

Типы данных

R является объектно-ориентированным, что означает, что он ожидает найти именованные вещи, с которыми можно каким-то образом справиться. Например, если вы проводите эксперимент и собираете данные из нескольких выборок, вы хотите создать в R несколько именованных объектов данных, чтобы потом работать с ними и выполнять анализ.
Вектор, матрица, фрейм данных , даже переменная является объектом. Итак, в R есть 5 основных классов объектов. Это включает в себя:

1. Символьные
2. Числовые (действительные числа)
3. Целые (целые числа)
4. Комплексные
5. Логические (истина/ложь)

[code language="R"]
› c ‹- "Привет"
› print(class(c))
[1] "персонаж"

› n ‹- 26.9
› print(class(n))
[1] «числовой»

› i ‹- 2L
› print(class(i))
[1] «целое число»

› m ‹- 2 + 5i
› print(class(m))
[1] «сложный»

› l ‹- TRUE
› print(class(l))
[1] «логический»

[/код]

R имеет различные типы «типов данных», которые включают в себя вектор (числовой, целочисленный и т. д.), матрицы, фреймы данных и список. Давайте разберемся с ними один за другим.

Вектор

Вектор содержит объект того же класса. Он содержит элемент того же типа. Типы данных могут быть логическими, целочисленными, двойными, символьными, сложными или необработанными.
Но вы также можете смешивать объекты разных классов. Когда в списке смешиваются объекты разных классов, происходит приведение. Этот эффект заставляет объекты разных типов «преобразовываться» в один класс. Приведение осуществляется от младших типов к более высоким, от логического к целому, от двойного к символьному.
Например:
Векторы обычно создаются с помощью функции c(), которая используется для объединения или конкатенации.

[code language="R"]
› x ‹- c(1,9,3,12,43)
› typeof(x)
[1] «двойной»
› длина(x)
[1] 5

› x ‹- c(3,6.3,TRUE,"R-программирование")
› x
[1] "3" "6.3" "TRUE" "R-программирование"
› typeof( х)
[1] «персонаж»

[/код]

Список

Список — это особый тип вектора, который содержит элементы разных типов данных.
Например:
Список можно создать с помощью функции list().

[code language="R"]
› мой список ‹- список("имя" = "Джон", "возраст" = 30, "лайки" = "программирование на R")
› мой список
$name
[1] «Джон»

$возраст
[1] 30

$likes
[1] «Программирование на R»

› str(mylist)
Список из 3
$ name : chr “John”
$ age : num 30
$ likes: chr “R-programming”
[/ код]

Матрицы

Матрицы — это объекты R, в которых элементы расположены в виде двумерного прямоугольного макета. Они содержат элементы одного и того же атомарного типа. Хотя мы можем создать матрицу, содержащую только символы или только логические значения, от них мало пользы. Мы используем матрицы, содержащие числовые элементы, для использования в математических вычислениях.
Матрица создается с помощью функции matrix().

Основной синтаксис для создания матрицы в R: -
matrix(data, nrow, ncol, byrow, dimnames)

Где данные — это входной вектор, который становится элементами данных матрицы
nrow — количество строк, которые необходимо создать
ncol — количество столбцов, которые нужно создать
построчно — логическая подсказка. Если TRUE, то элементы входного вектора упорядочены по строкам.
dimname — это имена, присвоенные строкам и столбцам.

[code language="R"]
› myMatrix ‹- matrix((1:15),3,5,FALSE)
› myMatrix
[,1] [,2] [, 3] [,4] [,5]
[1,] 1 4 7 10 13
[2,] 2 5 8 11 14
[3,] 3 6 9 12 15

› newMatrix ‹- matrix((24:31),4,2,TRUE)
› newMatrix
[,1] [,2]
[1,] 24 25
[2,] 26 27
[3,] 28 29
[4,] 30 31
[/code]

Факторы
Фактор – это структура данных, используемая для полей, которые принимают только предопределенное конечное число значений (категориальные данные).
Например, поле данных, такое как семейное положение, может содержать только значения из холостых, женатых, разлученных, разведенных или вдовых.
В таком случае мы заранее знаем возможные значения, и эти предопределенные, отличные значения называются уровнями. Ниже приведен пример фактора в R.

[code language="R"]
› data ‹- c("холост", "женат", "женат", "женат", "холост", "холост", "женат")
› factor_data ‹- factor(data)
› factor_data
[1] холост замужем женат женат холост холост замужем
Уровни: женат холост
[/code]

Фреймы данных

Это наиболее часто используемый член семейства типов данных. Используется для хранения табличных данных. Он отличается от матричного. В матрице каждый элемент должен иметь один и тот же класс. Но во фрейме данных вы можете поместить список векторов, содержащих разные классы. Это означает, что каждый столбец фрейма данных действует как список.
Например,

[code language="R"]
› студент ‹- data.frame("Roll No." = 1:3, "Name" = c("John", "Sam", "Mary"))< br /> › студент
Ролл.№. Имя
1 1 Джон
2 2 Сэм
3 3 Мэри

› class(student)
[1] "data.frame"
› typeof(student)
[1] "list"
[/code]

Функции в R

Функции используются для логического разбиения нашего кода на более простые части, которые легко поддерживать и понимать.
Синтаксис для написания функции в R:

[code language=”R”]
Function_name ‹- function(arg1, arg2, ..) {
Тело функции
}
[/code]

R предоставляет определенное количество встроенных функций, таких как seq(), mean(), max(), sum(x) и paste(…) и т. д.:

[code language="R"]
› print(seq(33,37))
[1] 33 34 35 36 37

› print(mean(15:25))
[1] 20

› print(sum(36:48))
[1] 546
[/code]

Определяемые пользователем функции
Давайте начнем с нашей собственной программы Hello World!

[code language="R"]
› myfunc ‹- function() {
+ print("Hello World")
+ }
› myfunc()
[1] «Привет, мир»

› newFunction ‹- function(n) {
+ for(i in 1:n) {
+ print(i²)
+ }
+ }
› newFunction (5)
[1] 1
[1] 4
[1] 9
[1] 16
[1] 25
[/code ]

Итак, это было введение в R. Мы углубимся в R в следующих моих блогах. :)

Ссылки:

  1. Начало R. Язык статистического программирования — доктор Марк Гарднер
  2. https://www.programiz.com/r-programming
  3. https://www.analyticsvidhya.com/blog/2016/02/complete-tutorial-learn-data-science-scratch/