Poznawanie struktur danych
Lekcja 1 z 14 w kursie Manipulowanie danymi w R w Coddy.
W R struktury danych są podstawą organizowania i przetwarzania danych. Przyjrzyjmy się trzem podstawowym strukturom danych: wektorom, macierzom i ramkom danych.
1. Wektory
Wektory to jednowymiarowe tablice, które mogą przechowywać elementy tego samego typu danych.
# Tworzenie wektora liczbowego
numbers <- c(1, 2, 3, 4, 5)
# Tworzenie wektora znakowego
fruits <- c("apple", "banana", "cherry")
# Uzyskiwanie dostępu do elementów
print(numbers[2]) # Wynik: 2
print(fruits[1:2]) # Wynik: "apple" "banana"
2. Macierze
Macierze to dwuwymiarowe tablice składające się z wierszy i kolumn, zawierające elementy tego samego typu danych.
# Tworzenie macierzy
mat <- matrix(1:6, nrow = 2, ncol = 3)
# Odwoływanie się do elementów
print(mat[1, 2]) # Zwraca element z 1. wiersza i 2. kolumny (Wynik: 3)
print(mat[, 1]) # Zwraca 1. kolumnę jako wektor (Wynik: 1 2)
3. Ramki danych
Ramki danych to struktury przypominające tabele, które mogą przechowywać różne typy danych w każdej kolumnie.
# Tworzenie ramki danych
df <- data.frame(
name = c("Alice", "Bob", "Charlie"),
age = c(25, 30, 35),
city = c("New York", "London", "Paris")
)
# Uzyskiwanie dostępu do elementów
print(df$name) # Zwraca kolumnę o nazwie "name" (Wynik: "Alice" "Bob" "Charlie")
print(df[2, "age"]) # Wynik: 30Ta 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
ŁatwyWykonaj następujące operacje na ramce danych:
- Dodaj nową kolumnę o nazwie "height_m", która przelicza wzrost z centymetrów na metry
- Oblicz i wypisz średni wiek
- Wypisz imię i nazwisko najwyższej osoby (w metrach)
Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
input_data <- suppressWarnings(readLines(con, n = 3))
# Przetwórz dane wejściowe
data_list <- strsplit(input_data, ",")
names <- sapply(data_list, function(x) x[1])
ages <- as.numeric(sapply(data_list, function(x) x[2]))
heights <- as.numeric(sapply(data_list, function(x) x[3]))
# Utwórz początkową ramkę danych
df <- data.frame(
name = names,
age = ages,
height = heights
)
# TODO: Napisz swój kod poniżej
# 1. Dodaj nową kolumnę 'height_m'
# 2. Oblicz i wypisz średni wiek
# 3. Wypisz imię najwyższej osoby (w metrach)
# Miejsce na wynik
cat("Average age:", avg_age, "\n")
cat("Tallest person:", tallest_person)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