Урок 4 Пакет dplyr: Фильтрация по строкам, продвинутый выбор столбцов, переименование столбцов, пайплайны
4.1 Описание
Этот урок посвящён пакету dplyr
. В нём мы разберёмся как фильтровать датафреймы, выбирать нужные столбцы и переименовывать их.
Также узнаем что такое пайпланы и как они помогают делать ваш код на языке R более читаемым.
4.3 Материалы
Все материалы к данному уроку можно найти по ссылке.
4.4 Код
# установка пакетов
install.packages("dplyr")
# подключение пакетов
library(vroom)
library(dplyr)
# загрузка данных
<- vroom("https://raw.githubusercontent.com/selesnow/publications/master/code_example/from_excel_to_r/lesson_3/ga_nowember.csv")
ga_data
# ######################################################
# фильтраци¤ строк
## простейший фильтр с одним условием
<- filter(ga_data, medium == "organic")
ga_data_organic
## несколько условий
<- filter(ga_data, medium == "organic" & sessions > 10 )
ga_data_organic_10
## провер¤ем на соответвию значению из списка
<- filter(ga_data, source %in% c("google", "yandex", "bing"))
google_yandex
## создаЄм вектор дл¤ фильтрации
<- c("google", "yandex", "bing")
search_eng ## используем вектор дл¤ фильтрации
<- filter(ga_data, ! source %in% search_eng)
not_searcj_eng
# ######################################################
# выбор столбцов
## простой выбор столбцов по названи¤м
<- select(ga_data, date, sessions)
ga_data_с1
## срез по столбцам
<- select(ga_data, source:sessions)
ga_data_с2
## получить столбцы по названию использу¤ регул¤рные выражени¤
<- select_at(ga_data, vars(matches("s"))) # содержит s
match_s <- select_at(ga_data, vars(contains("s"))) # содержит s
match_s2 <- select_at(ga_data, vars(matches("s$"))) # заканчиваетс¤ на s
last_s1 <- select_at(ga_data, vars(ends_with("s"))) # заканчиваетс¤ на s
last_s2 <- select_at(ga_data, vars(matches("^s"))) # начинаетс¤ на s
start_s1 <- select_at(ga_data, vars(starts_with("s"))) # начинаетс¤ на s
start_s2
## выбрать только числовые столбцы
<- select_if(ga_data, is.numeric)
ga_num_column <- select_if(ga_data, is.character)
ga_str_column
## шпаргалка
# select - выбор столбцов по названию
# select_at - выбор по названию с попощью доп операторов и регул¤рных выражений
# select_if - выбор по типу пол¤, например все строковые или все числовые пол¤
# ######################################################
# переименовываем столбцы
<- rename(ga_data,
new_ga_data channel = medium,
refferer = source)
# мен¤ем стиль имЄн столбцов
rename_if(ga_data, is.numeric, paste0, "_n")
rename_at(ga_data, vars(matches("^s")), paste0, "_s")
rename_all(ga_data, toupper)
# ######################################################
# пайплайны
## вложенные функции (как в Excel)
rename_all(select_if(filter(ga_data, source %in% search_eng), is.numeric), toupper)
## тоже самое но через пайплайн %>%
<- ga_data %>%
result filter(source %in% search_eng) %>%
select_if(is.numeric) %>%
rename_all(toupper)