Agregowanie danych za pomocą dplyr
Lekcja 7 z 14 w kursie Manipulowanie danymi w R w Coddy.
Agregowanie danych to kluczowy etap analizy danych, który pozwala podsumować zbiór danych i uzyskać z niego spostrzeżenia. Pakiet dplyr w R udostępnia zaawansowane funkcje do agregowania danych, w szczególności group_by() i summarize(). Przyjrzyjmy się, jak skutecznie korzystać z tych funkcji.
Funkcja group_by()
Funkcja group_by() pozwala grupować dane na podstawie jednej lub kilku zmiennych. Zazwyczaj jest to pierwszy etap agregowania danych.
# Przykładowa ramka danych
df <- data.frame(
category = c("A", "B", "A", "B", "A"),
value = c(10, 15, 20, 25, 30)
)
# Pogrupuj dane według category
grouped_df <- group_by(df, category)
print(grouped_df)Wynik:
# Tibble: 5 × 2
# Grupy: category [2]
category value
<chr> <dbl>
1 A 10
2 B 15
3 A 20
4 B 25
5 A 30Funkcja summarize()
Po pogrupowaniu użyj summarize(), aby obliczyć statystyki podsumowujące dla każdej grupy.
# Oblicz średnią wartość dla każdej kategorii
result <- summarize(grouped_df, mean_value = mean(value))
print(result)Wynik:
# A tibble: 2 × 2
category mean_value
<chr> <dbl>
1 A 20
2 B 20Łączenie funkcji group_by() i summarize()
Możesz połączyć te funkcje za pomocą operatora potoku %>%, aby kod był czytelniejszy:
result <- df %>%
group_by(category) %>%
summarize(mean_value = mean(value),
sum_value = sum(value),
count = n())
print(result)Wynik:
# A tibble: 2 × 4
category mean_value sum_value count
<chr> <dbl> <dbl> <int>
1 A 20 60 3
2 B 20 40 2Wiele statystyk podsumowujących
Możesz obliczyć wiele statystyk w jednym wywołaniu summarize():
result <- df %>%
group_by(category) %>%
summarize(
mean_value = mean(value),
min_value = min(value),
max_value = max(value),
count = n()
)
print(result)Wynik:
# A tibble: 2 × 5
category mean_value min_value max_value count
<chr> <dbl> <dbl> <dbl> <int>
1 A 20 10 30 3
2 B 20 15 25 2Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŚredniUtwórz funkcję, która przetwarza dane dotyczące sprzedaży za pomocą funkcji z pakietu dplyr. Funkcja powinna wykonać następujące operacje:
- Pogrupuj dane według kategorii produktu
- Oblicz następujące statystyki podsumowujące dla każdej grupy:
- Łączna sprzedaż
- Średnia cena
- Liczba sprzedanych produktów
- Uporządkuj wyniki według łącznej sprzedaży w kolejności malejącej
- Zwróć przetworzoną ramkę danych
Wyświetl wynikową ramkę danych.
Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
input_data <- suppressWarnings(readLines(con))
# Przekształć ciąg wejściowy w ramkę danych
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(readr))
sales_data <- read.csv(paste(input_data, collapse = "\n"))
# TODO: Napisz poniżej kod przetwarzający dane sprzedażowe
# Wskazówka: Użyj funkcji dplyr, takich jak group_by(), summarize(), arrange(), desc()
process_sales_data <- function(data) {
# Tu wpisz swój kod
# Zwróć przetworzoną ramkę danych
return(data)
}
# Przetwórz dane sprzedażowe
result <- process_sales_data(sales_data)
# Wyświetl wynik
print(result)Wszystkie lekcje w sekcji Manipulowanie danymi w R
1Podstawy danych
Poznawanie struktur danychIndeksowanie w DataFrameWybieranie podzbioru danychKonwersja typów danychOperator potoku w R4Zaawansowana manipulacja danymi
Manipulowanie ciągami znakówObsługa daty i czasuFunkcje niestandardowe2Przekształcanie danych
Wprowadzenie do dplyrAgregowanie danych za pomocą dplyrŁączenie danych za pomocą dplyrPoćwicz samodzielnie: Kompilator R online