Введение в R и RStudio
Типы данных
Вектор
Сложные структуры данных
R и RStudio
Операторы (арифметические, логические и пр.), функции
Поиск информации
integer
double
complex
character
logical
raw
Приведение типов
c(TRUE, 1, "R")
## [1] "TRUE" "1" "R"
Векторизация
m <- 1:4
n <- 4:1
m * n
## [1] 4 6 6 4
Ресайклинг
m <- 1:4
k <- 0:1
m * k
## [1] 0 2 0 4
Индексирование векторов
m[1]
## [1] 1
m[c(TRUE, FALSE)]
## [1] 1 3
Пропущенные значения (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
Создание матрицы
A <- matrix(1:4, nrow = 2)
A
## [,1] [,2]
## [1,] 1 3
## [2,] 2 4
Индексирование матрицы
A[1,1]
## [1] 1
Создание списка
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_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
Создание датафрейма
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()
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