Menu
Coddy logo textTech

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           30

Funkcja 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     2

Wiele 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     2
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Średni

Utwórz funkcję, która przetwarza dane dotyczące sprzedaży za pomocą funkcji z pakietu dplyr. Funkcja powinna wykonać następujące operacje:

  1. Pogrupuj dane według kategorii produktu
  2. Oblicz następujące statystyki podsumowujące dla każdej grupy:
    • Łączna sprzedaż
    • Średnia cena
    • Liczba sprzedanych produktów
  3. Uporządkuj wyniki według łącznej sprzedaży w kolejności malejącej
  4. 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

Poćwicz samodzielnie: Kompilator R online