Второй день

Иван Поздняков

13 11 2020

Резюме первого дня

  • Введение в R и RStudio

  • Типы данных

  • Вектор

  • Сложные структуры данных

Введение в R и RStudio

  • R и RStudio

  • Операторы (арифметические, логические и пр.), функции

  • Поиск информации

Типы данных

  • integer

  • double

  • complex

  • character

  • logical

  • raw

Вектор I

Приведение типов

c(TRUE, 1, "R")
## [1] "TRUE" "1"    "R"

Векторизация

m <- 1:4
n <- 4:1
m * n
## [1] 4 6 6 4

Вектор II

Ресайклинг

m <- 1:4
k <- 0:1
m * k
## [1] 0 2 0 4

Индексирование векторов

m[1]
## [1] 1
m[c(TRUE, FALSE)]
## [1] 1 3

Вектор III

Пропущенные значения (NA)

h <- c(1, 2, 3, NA)
NA == NA
## [1] NA
is.na(h)
## [1] FALSE FALSE FALSE  TRUE
mean(h)
## [1] NA
mean(h, na.rm = TRUE)
## [1] 2

Сложные структуры данных I

Матрица (matrix)

Создание матрицы

A <- matrix(1:4, nrow = 2)
A
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4

Индексирование матрицы

A[1,1]
## [1] 1

Список (list) I

Создание списка

list_1 <- list(a = 1:2, b = 3:4, c = list(d = 5:6, e = 7:8))
list_1
## $a
## [1] 1 2
## 
## $b
## [1] 3 4
## 
## $c
## $c$d
## [1] 5 6
## 
## $c$e
## [1] 7 8

Список (list) II

Индексирование списка

list_1$c$e
## [1] 7 8
list_1[3]
## $c
## $c$d
## [1] 5 6
## 
## $c$e
## [1] 7 8
list_1[[3]][[2]][2]
## [1] 8

Датафрейм (data.frame)

Создание датафрейма

df <- data.frame(
  age = c(25, 30),
  student = c(FALSE, TRUE),
  city = c("Moscow", "Balashikha")
  )

Индексирование датафрейма

df[1,1]
## [1] 25
df$city
## [1] "Moscow"     "Balashikha"

Планы на второй день

  • Еще немного датафреймов

  • Работа с пакетами

  • Импорт данных

  • Условные конструкции

  • Создание функций

  • Функции семейства apply()

Еще немного датафреймов

Работа с пакетами

Импорт данных в R

Импорт данных в R

Условные конструкции

number <- 0
if (number > 0) {
  "Положительное число"
} else if (number < 0){
  "Отрицательное число"
} else {
  "Ноль"
}
## [1] "Ноль"

Создание функций

pow <- function(x, p) {
  power <- x ^ p
  return(power)
}
pow(3, 2)
## [1] 9

Функции семейства apply()

A <- matrix(1:12, 3, 4)
apply(A, 1, sum)
## [1] 22 26 30
apply(A, 2, sum)
## [1]  6 15 24 33