EN | PT | TR | RO | BG | SR
;


NEXT TOPIC

СЪДЪРЖАНИЕ НА МОДУЛА




Модул 3: Усъвършенствана манипулация с данни и графики




Усъвършенствано манипулиране на данни с помощта на пакетите tidyr и dplyr.

Създаване на сложни и усъвършенствани графики с помощта на ggplot2, включително персонализиране на естетиката на графиките, като например цветове и теми.

Специализирани пакети за манипулиране и визуализиране на данни, като lubridate, forcats и gridExtra.



Във все по-разширяващата се сфера на науката за данните способността за ефективно манипулиране и визуализиране на данни е незаменима. Модул 3 служи като крайъгълен камък, за да издигнете уменията си за анализ на данни на следващото ниво, като навлезете в усъвършенствани техники за манипулиране на данни и създаване на сложни, персонализирани визуализации на данни. Тук ще разгледаме разширените възможности на пакетите tidyr и dplyr за манипулиране на данни и ще ви въведем в света на усъвършенстваните графики с помощта на ggplot2. Освен това ще се впуснем в специализирани пакети като lubridate, forcats и gridExtra, за да разширим допълнително инструментариума ви за анализ на данни.



Силата на tidyr

Пакетът tidyr, разработен от Хадли Уикъм, е предназначен за подреждане на разхвърляни набори от данни, като ги прави по-подходящи за анализ. Подреждането на данните включва преоформянето им от широк формат в дълъг формат, като се гарантира, че всяка променлива има собствена колона, а всяко наблюдение има собствен ред (Wickham & Henry, 2018). Участниците ще овладеят изкуството на подреждането на данни, което ще им позволи да подготвят своите набори от данни за ефективен анализ.

Пакетът tidyr, разработен от Хадли Уикъм, се фокусира върху подреждането на неподредени набори от данни, като позволява на анализаторите на данни и учените да работят с данните по по-структуриран и организиран начин (Wickham & Henry, 2018). Основната цел е да се трансформират данните от широк формат в дълъг формат, като се гарантира, че всяка променлива има собствена колона, а всяко наблюдение има собствен ред.

Ето ръководство стъпка по стъпка за това как да се използва силата на tidyr в R

Инсталиране и зареждане на пакета tidyr

Преди да можете да използвате tidyr, трябва да инсталирате и заредите пакета. Можете да направите това, като използвате следните команди:

install.packages("tidyr")

library(tidyr)

Разбиране на подреждането на данни

Подреждането на данни означава преструктурирането им, за да отговарят на принципите на подредените данни, определени от Хадли Уикъм. В един подреден набор от данни:

Всяка променлива образува колона.

Всяко наблюдение образува ред.

Всяка стойност е в отделна клетка.

Данните са организирани по начин, който опростява манипулирането, анализа и визуализацията на данните.

Преоформяне на данните с функцията gather()

Функцията gather() е основен инструмент за преобразуване на данни от широк формат в дълъг формат. Тази функция взема множество колони и ги сгъстява в двойки ключ-стойност. Тя е особено полезна при работа с набори от данни, в които множество колони представляват различни времеви точки, категории или променливи.

Основният синтаксис на collect() е следният:

gathered_data <- gather(original_data, key = "new_key_column", value = "new_value_column", columns_to_gather)

original_data: Вашият оригинален набор от данни.

new_key_column: Името на новата колона, която ще съдържа имената на променливите.

new_value_column: Името на новата колона, която ще съдържа стойностите.

columns_to_gather: Колоните, които искате да преоформите в двойки ключ-стойност.

Разпространение на данни с функцията spread()

И обратното, може да се наложи да разпределите данните от дълъг формат в широк формат, когато искате променливите, които се съхраняват като двойки ключ-стойност, отново да бъдат отделни колони. За тази цел се използва функцията spread().

Основният синтаксис на spread() е следният:

spread_data <- spread(original_data, key = "new_key_column", value = "new_value_column")

original_data: Вашият оригинален набор от данни в дълъг формат.

new_key_column: Колоната, съдържаща имената на променливите.

new_value_column: Колоната, съдържаща стойностите.

Работа с липсващи данни

При подреждането на данните може да се сблъскате с липсващи стойности. Tidyr предоставя функции като drop_na() за премахване на редове, съдържащи липсващи стойности.

Пример за подреждане на данни

Да речем, че имате набор от данни, в който колоните представляват различни години, и искате да го преобразувате в дълъг формат, за да работите с него по-ефективно. Можете да използвате функцията gather() по следния начин:

long_data <- gather(original_data, key = "Year", value = "Value", 2000:2020)

Този код взема оригиналния набор от данни (original_data) и го трансформира в дълъг формат с две нови колони - "Година" и "Стойност". Колоната "Година" ще съдържа годините (от 2000 до 2020 г.), а колоната "Стойност" ще съдържа съответните стойности.

Подреждане за анализ

Подреждането на данните е важна стъпка в анализа на данни. След като данните ви са подредени, можете ефективно да използвате пакета dplyr за манипулиране на данни и да генерирате проницателни визуализации с ggplot2.

Сега, след като се запознахме с възможностите на tidyr в R, нека преминем към следващия раздел, в който ще навлезем в разширеното манипулиране на данни с помощта на пакета dplyr.

Ефективност с dplyr

Пакетът dplyr, още едно творение на Хадли Уикъм, представлява граматика за манипулиране на данни. Той предоставя набор от функции за преобразуване на данни, включително филтриране, подреждане, групиране, обобщаване и други (Wickham et al., 2021). Участниците ще открият как да използват силата на dplyr за ефективно обработване и трансформиране на данни, за да извлекат значими прозрения.

Както беше споменато, dplyr, разработен от Хадли Уикъм, е мощен инструментариум за преобразуване на данни, предлагащ редица функции, които правят манипулирането на данни по-интуитивно и ефективно (Wickham et al., 2021).

Предлагаме ви изчерпателно ръководство за това как да използвате ефективността на dplyr в R

Инсталиране и зареждане на пакета dplyr

Преди да можете да използвате dplyr, трябва да инсталирате и заредите пакета. Можете да направите това със следните команди:

install.packages("dplyr")

library(dplyr)

Основни глаголи

Dplyr се фокусира върху няколко основни глагола, които служат като градивни елементи за манипулиране на данни. Тези глаголи включват:

filter(): Избира редове, които отговарят на определени условия.

arrange(): Подрежда редове въз основа на една или повече колони.

select(): Избира конкретни колони.

mutate(): Създава нови променливи въз основа на съществуващите.

summarize(): Агрегира данните за обобщаване.

Последователни операции с %>%

Синтаксисът на Dplyr позволява обединяване на няколко операции с помощта на оператора %>% (произнася се "pipe"). Това ви позволява да създавате поредица от стъпки за манипулиране на данни, което прави кода ви по-четим и кратък. Например:

result <- dataset %>%

filter(condition) %>%

select(columns) %>%

arrange(order) %>%

group_by(grouping) %>%

summarize(summary)

Филтриране на данни с filter()

Функцията filter() ви позволява да избирате редове въз основа на определени условия. Например:

filtered_data <- dataset %>% filter(column > value)

Подреждане на данни с arrange()

Функцията arrange() се използва за сортиране на редове въз основа на една или повече колони. Например:

sorted_data <- dataset %>% arrange(column1, column2)

Избиране на колони с функцията select()

Select() ви позволява да избирате определени колони от набора от данни. Например:

selected_columns <- dataset %>% select(column1, column2)

Създаване на нови променливи с mutate()

mutate() се използва за създаване на нови променливи чрез преобразуване на съществуващи. Например:

mutated_data <- dataset %>% mutate(new_variable = old_variable * 2)

Обобщаване на данни с summarize()

Функцията summarize() ви позволява да обобщавате данни, което е особено полезно за генериране на обобщена статистика. Например:

summary_data <- dataset %>% group_by(grouping_column) %>% summarize(mean = mean(value), sd = sd(value))

Групиране на данни с функцията group_by()

Групирането на данни с функцията group_by() е от съществено значение, когато искате да извършвате операции върху подмножества от данни. Често се използва в комбинация с summarize() за изчисляване на статистически данни за различни групи.

Ефективност и многозначност на данните

Едно от основните предимства на dplyr е неговата ефективност, тъй като операциите са оптимизирани за бързина. Освен това ясният и кратък синтаксис намалява многословието на данните, което прави кода ви по-четим и лесен за поддържане.

Обработка на грешки

Dplyr предоставя смислени съобщения за грешки, които могат да ви помогнат бързо да идентифицирате и отстраните проблеми в кода за манипулиране на данни.

Практика и приложение

За да придобиете опит в използването на dplyr, практикувайте върху реални набори от данни и изследвайте различни сценарии за преобразуване на данни. Колкото повече го използвате, толкова повече ще оценявате неговата ефективност и гъвкавост.

С овладяването на dplyr ще разкриете способността си ефективно да обработвате, манипулирате и извличате информация от данните си, като подобрявате възможностите си за анализ на данни и вземане на решения.



Отключване на потенциала на ggplot2

ggplot2, всеобхватен пакет за визуализация на данни, разработен от Хадли Уикъм, е известен със своята гъвкавост и елегантност (Wickham, 2016). Той ви позволява да създавате сложни и информативни графики. Ще навлезете в сърцето на визуализацията на данни с ggplot2, като се научите как да конструирате сложни графики, които изобразяват връзки, тенденции и модели във вашите данни.

Както беше споменато, ggplot2, разработен от Хадли Уикъм, е мощен и гъвкав инструментариум за визуализация на данни, който предлага структуриран и многопластов подход за създаване на сложни графики (Wickham, 2016).

Предлагаме ви подробно ръководство за разкриване на потенциала на ggplot2 в R

Инсталиране и зареждане на пакета ggplot2

Ако все още не сте го направили, трябва да инсталирате и заредите пакета ggplot2. Можете да направите това със следните команди:

install.packages("ggplot2")

library(ggplot2)

Основна граматика на ggplot2

ggplot2 е изграден върху концепцията за "граматика на графиката", която осигурява структуриран начин за създаване на графики. Основните компоненти на една графика в ggplot2 включват данни, естетически съпоставки, геометрични обекти (геоми) и аспекти. Основната структура на плот от ggplot2 изглежда по следния начин:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) +

geom_point()

Данни и естетика

Аргументът data определя набора от данни, с който работите.

Функцията aes() (естетически съпоставки) се използва за определяне на начина, по който променливите се съпоставят с визуалните елементи в графиката. Например, можете да съпоставите променливите x и y на данните си с осите x и y на графиката.

Геометрични обекти (Geoms)

Геометричните обекти, или геомите, определят вида на парцела, който искате да създадете. Някои често срещани геоми включват:

geom_point(): Създава диаграма на разпръскване.

geom_line(): Генерира линейни графики.

geom_bar(): Конструира стълбовидни диаграми.

geom_boxplot(): Изготвя боксплотове.

Персонализиране на парцела

ggplot2 предлага широки възможности за персонализиране на външния вид на графиката. Можете да променяте заглавието на графиката, етикетите на осите, легендата, цветовете и темите. Например:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) +

  geom_point() +

  labs(title = "Your Plot Title", x = "X-Axis Label", y = "Y-Axis Label") +

  theme_minimal() # Прилагане на минимална тема

Множество геометрични обекти и слоеве

Можете да създавате сложни графики, като добавяте множество геометрични обекти и слоеве към една и съща графика. Това ви позволява да представите различни аспекти на данните си в една визуализация. Например:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) +

geom_point() +

geom_smooth(method = "lm", color = "red") # Добавяне на линия на линейна регресия

Фасетиране

Разглеждането на аспектите ви позволява да създавате множество графики, всяка от които показва различна подгрупа от вашите данни. За целта можете да използвате функциите facet_wrap() или facet_grid(). Например:

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) +

geom_point() +

facet_wrap(~category_variable) # Създаване на множество графики въз основа на променлива категория

Запазване на вашия парцел

Можете да запишете диаграмата във файл с помощта на функцията ggsave(). Например:

ggsave("your_plot.png", width = 6, height = 4, dpi = 300)

Практика и изследване

За да придобиете умения в ggplot2, практикувайте със собствени набори от данни и изследвайте множеството налични опции и геометрични параметри. Колкото повече експериментирате, толкова по-добри ще станете в създаването на богати и информативни визуализации.

Общност и ресурси

Присъединете се към оживените общности на R и ggplot2, за да потърсите помощ и да споделите своите визуализации. Има многобройни онлайн ресурси, уроци и книги, посветени на ggplot2, които ще задълбочат знанията ви.

С овладяването на ggplot2 ще разполагате с инструменти за създаване на сложни и проницателни визуализации, което ще подобри способността ви да предавате ефективно информация, базирана на данни.

Персонализиране на естетиката на участъка

При визуализацията на данни персонализирането е от ключово значение за създаването на въздействащи визуализации. Ще разгледаме как да настроим естетиката на графиките, включително цветове, теми и шрифтове, за да гарантираме, че вашите визуализации са не само информативни, но и визуално привлекателни.

При визуализацията на данни персонализирането играе жизненоважна роля за създаването на визуално привлекателни и информативни графики. ggplot2, мощният пакет за визуализация в R, предоставя широки възможности за персонализиране на естетиката на графиките, включително цветове, теми и шрифтове.

Теми

ggplot2 предлага различни теми, които управляват цялостния вид на вашите графики. Темата по подразбиране е доста минималистична, но можете да избирате от теми като theme_minimal(), theme_bw() или theme_classic(), за да промените външния вид на своя чертеж.

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) + geom_point() + theme_minimal()

Цветове

Можете да персонализирате цветовете в диаграмата - от цветовете на запълване и границите на точките с данни до цветовете на фона и текста. Функциите scale_fill_manual() и scale_color_manual() ви позволяват да дефинирате потребителски цветови палитри.

ggplot(data = your_data, aes(x = x_variable, y = y_variable, color = category_variable)) +

geom_point() +

scale_color_manual(values = c("red", "blue", "green"))

Шрифтове и текст

Можете да регулирате естетиката на текста, например размера на шрифта, шрифтовото семейство и ориентацията на текста. За тази цел може да се използва функцията theme().

ggplot(data = your_data, aes(x = x_variable, y = y_variable, label = data_labels)) +

geom_text(size = 12, family = "Arial", angle = 45) +

theme(text = element_text(family = "Arial", size = 14))

Легенди и брадви

Персонализирането на легендите, заглавията и етикетите на осите е от съществено значение. Можете да използвате функции като labs(), за да промените заглавието на графиката и етикетите на осите. Функцията theme() също е удобна за настройване на текста на осите.

ggplot(data = your_data, aes(x = x_variable, y = y_variable)) +

  geom_point() +

  labs(title = "Customized Plot Title", x = "X-Axis Label", y = "Y-Axis Label") +

  theme(axis.text.x = element_text(size = 12, angle = 45))

Запазване на персонализирани парцели

След като сте настроили естетиката на графиката, можете да я запишете във файл с помощта на функцията ggsave().

ggsave("custom_plot.png", width = 6, height = 4, dpi = 300)



Наръчник на пътешественика във времето: lubridate

Работата с данни, свързани с времето, може да бъде предизвикателство, но с пакета lubridate можете лесно да обработвате дати и времена в R (Spinu et al., 2021). Участниците ще придобият експертен опит в манипулирането и анализирането на времеви данни, което ще отвори ново измерение в анализа на данни.

Наръчник на пътешественика във времето: lubridate

Работата с данни, свързани с времето, може да бъде предизвикателство, но пакетът lubridate в R я улеснява значително (Spinu et al., 2021). Той предоставя функции за парсване, форматиране и манипулиране на данни за дата и час. Ето как можете да използвате lubridate:

Инсталиране и зареждане на lubridate

Ако все още не сте го направили, инсталирайте пакета lubridate и го заредете в средата на R.

install.packages("lubridate")

library(lubridate)

Анализиране на дати

lubridate ви позволява да анализирате символни низове в обекти за дати с помощта на функции като ymd() (година, месец, ден) или dmy() (ден, месец, година). Например:

 

date_string <- "2022-12-31"

date <- ymd(date_string)

Аритметика на датата

Можете да извършвате различни операции с обекти с дати, като например изчисляване на времеви интервали, добавяне или изваждане на дни и намиране на разликата между две дати.

today <- ymd("2023-03-15")

future_date <- today + days(30)

time_difference <- difftime(future_date, today)

Извличане на компоненти

lubridate ви позволява да извличате специфични компоненти от обекти с дата, като година, месец, ден, час, минута и секунда.

year(today)

month(today)

Форматиране на дати

Можете да форматирате обекти с дати в потребителски низове за представяне.

format(today, format = "%B %d, %Y")

Работа с часови зони

Пакетът се справя и с часовите зони и лятното часово време, като осигурява точни времеви изчисления в различни часови зони.

lubridate е безценен набор от инструменти за всеки анализатор на данни или изследовател, работещ с времеви данни, тъй като опростява често сложните задачи, свързани с анализа на времеви редове и манипулирането на данни.

Като овладеете персонализирането в ggplot2 и ефективно управлявате данни, свързани с времето, с помощта на lubridate, ще бъдете добре подготвени да създавате сложни визуализации и да обработвате ефективно времеви данни.



Пакетът forcats, разработен от Хадли Уикъм, ви предоставя разнообразни функции за ефективно манипулиране и визуализиране на категорични данни.

Монтаж и зареждане

Ако все още не сте го направили, инсталирайте пакета forcats и го заредете в средата на R.

install.packages("forcats")

library(forcats)

Пренареждане на нивата на факторите

Пакетът forcats ви позволява да пренареждате нивата на факторите въз основа на определени критерии, което улеснява контрола на реда, в който категоричните променливи се показват в графиките.

your_data$your_factor <- fct_reorder(your_data$your_factor, your_variable)

Промяна на нивата на факторите

Можете да променяте нивата на факторите, като ги обединявате или прекодирате за по-добра яснота на визуализациите.

your_data$your_factor <- fct_collapse(your_data$your_factor, "New Level" = c("Old Level 1", "Old Level 2")

Визуализиране на категорични данни

forcats предоставя функции като fct_count() за ефективно визуализиране на честотата на всяко ниво в категорична променлива.

ggplot(data = your_data, aes(x = fct_reorder(your_factor, your_variable)) +

  geom_bar() +

  coord_flip()

Работа с припокриващи се етикети

В някои случаи при визуализиране на категорични данни може да срещнете припокриващи се етикети. Функцията fct_lump() ви позволява да групирате рядко срещани нива в категория "Други", като по този начин намалявате претрупването.

your_data$your_factor <- fct_lump(your_data$your_factor, n = 5)

Разширяване на хоризонтите с gridExtra

Пакетът gridExtra разширява възможностите ви за визуализация на данни, като ви позволява да подредите множество графики, създадени с ggplot2, в един визуален дисплей. Това е безценно за предаване на сложна информация по структуриран и изчерпателен начин.

Монтаж и зареждане

Ако все още не сте го направили, инсталирайте пакета gridExtra и го заредете в средата на R.

install.packages("gridExtra")

library(gridExtra)

Създаване на съставни участъци

С помощта на gridExtra можете да създавате съставни графики, като подреждате отделните графики на ggplot2 в различни оформления, например редове или колони.

composite_plot <- grid.arrange(plot1, plot2, ncol = 2)

Персонализиране на оформленията

Имате контрол върху подредбата, разстоянието и подравняването на графиките в комбинирания дисплей, което ви позволява да създавате визуализации, които отговарят на конкретните ви нужди.

composite_plot <- arrangeGrob(plot1, plot2, ncol = 2, top = "Composite Plot Title")

Запазване на съставни площи

След като създадете съставен чертеж, можете да го запазите като изображение или да го включите в доклади и презентации.

ggsave("composite_plot.png", composite_plot, width = 8, height = 6, dpi = 300)

Като овладеете пакета forcats за манипулиране на категорични данни и пакета gridExtra за разширена визуализация, ще разполагате с инструментите, необходими за ефективно управление и визуализиране на данните, особено при работа със сложна категорична информация.

По време на този модул ще придобиете напреднали умения за манипулиране и визуализиране на данни. Придобитите тук знания и инструменти ще ви дадат възможност да се справяте със сложни задачи за анализ на данни, да превръщате разхвърляни данни в ценни прозрения и да създавате въздействащи визуализации. Докато навлизате в света на tidyr, dplyr, ggplot2 и специализираните пакети, способността ви да работите с разнообразни набори от данни и да създавате информативни визуализации ще се превърне във ваша втора природа. Тези умения ще ви послужат като солидна основа за напреднал анализ и изследване на данни по пътя ви към науката за данните.



Auguie, B. (2017). gridExtra: Miscellaneous functions for "Grid" Graphics. R package version 2.3.

Spinu, V., Grolemund, G., & Wickham, H. (2021). lubridate: Make dealing with dates a little easier. R package version 1.8

Wickham, H. (2021). forcats: Tools for working with categorical variables (Factors). R package version 0.5.1.