Przejdź do głównej treści
eLearner.app
Moduł 2 · Lekcja 1 z 23/10 w kursie~12 min
Lekcje modułu (1/2)

Struktury Data Frames

W przeciwieństwie do macierzy, które mogą zawierać elementy tylko jednego typu, Data Frames (ramki danych) reprezentują najczęściej używaną strukturę danych tabelarycznych w R do analizy rzeczywistych danych.

Data Frame to tabela, w której każda kolumna może zawierać dane innego typu (np. jedna kolumna liczbowa, jedna tekstowa i jedna logiczna), ale wszystkie kolumny muszą mieć tę samą długość.

Tworzenie Data Frame

Aby utworzyć Data Frame, używa się funkcji data.frame(), definiując nazwy kolumn i przypisując im wektory:

Code
# Tworzenie przykładowego data frame
students <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  grade = c(28, 24, 30),
  passed = c(TRUE, TRUE, TRUE)
)
print(students)

Dostęp do Kolumn i Wierszy

Istnieje kilka sposobów na wyodrębnianie i manipulowanie danymi w Data Frame:

  1. Użycie operatora dolara $: Pozwala wyodrębnić pojedynczą kolumnę w postaci wektora.
    Code
    grades <- students$grade
    # grades będzie wektorem c(28, 24, 30)
    
  2. Użycie nawiasów kwadratowych [wiersz, kolumna]: Podobnie jak w macierzach.
    Code
    # Pierwszy student (pierwszy wiersz)
    first_student <- students[1, ]
    

Filtrowanie Danych

Jedną z mocnych stron języka R jest możliwość filtrowania rekordów na podstawie warunków logicznych:

Code
# Wybieramy tylko studentów z oceną powyżej 25
good_students <- students[students$grade > 25, ]
print(good_students)

Wymiary i Modyfikacja Data Frame

Aby poznać wymiary Data Frame (liczbę wierszy i kolumn), możemy użyć funkcji dim():

Code
# Zwraca wektor z dwoma elementami: c(wiersze, kolumny)
dimensions <- dim(students)

Możemy również dodawać nowe kolumny lub aktualizować istniejące za pomocą operatora $:

Code
# Dodaje kolumnę z ocenami zwiększonymi o 2 punkty
students$bonus_grade <- students$grade + 2

Spróbuj sam

Ćwiczenie#r.m2.l1.e1
Próby: 0Ładowanie...

Utwórz Data Frame o nazwie students zawierający dwie kolumny: name (z wartościami 'Alice' i 'Bob') oraz grade (z wartościami 28 i 24).

Ładowanie edytora...
Pokaż wskazówkę

Użyj funkcji data.frame: students <- data.frame(name = c('Alice', 'Bob'), grade = c(28, 24))

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#r.m2.l1.e2
Próby: 0Ładowanie...

Dla danego Data Frame students, wyodrębnij kolumnę grade przy użyciu operatora $ i zapisz ją w zmiennej grades_vector.

Ładowanie edytora...
Pokaż wskazówkę

Użyj operatora $: grades_vector <- students$grade

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#r.m2.l1.e3
Próby: 0Ładowanie...

Przefiltruj Data Frame students, aby zawierał tylko studentów z grade większym lub równym 26, zapisując wynik w good_students.

Ładowanie edytora...
Pokaż wskazówkę

Użyj students[students$grade >= 26, ] nie zapominając o przecinku, aby wybrać wszystkie kolumny.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#r.m2.l1.e4
Próby: 0Ładowanie...

Dla danej ramki danych df, pobierz jej wymiary za pomocą funkcji dim() i zapisz je w zmiennej df_dim.

Ładowanie edytora...
Pokaż wskazówkę

Użyj funkcji dim(): df_dim <- dim(df)

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#r.m2.l1.e5
Próby: 0Ładowanie...

Dla danej ramki danych inventory, dodaj nową kolumnę o nazwie total_value obliczoną jako iloczyn kolumn price i quantity.

Ładowanie edytora...
Pokaż wskazówkę

Użyj: inventory$total_value <- inventory$price * inventory$quantity

Rozwiązanie dostępne po 3 próbach