Tworzenie ramek danych
Część sekcji Logika i przepływ sterowania ścieżki R w Coddy. Lekcja 42 z 64.
Ramka danych to tabela w R: każda kolumna jest wektorem własnego typu, a wszystkie kolumny mają tę samą długość, czyli po jednej wartości na wiersz. data.frame() tworzy ją z nazwanych wektorów:
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people)Wynik:
name age city
1 ada 36 london
2 bo 22 paris
3 cy 41 romenrow() i ncol() podają rozmiar, a names() wyświetla nazwy kolumn. W przeciwieństwie do macierzy kolumny mogą zawierać różne typy danych: tutaj tekst i liczby.
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(nrow(people))
print(ncol(people))
print(names(people))Wynik:
[1] 3
[1] 3
[1] "name" "age" "city"str() pokazuje typ i pierwsze wartości każdej kolumny, co jest szybkim sposobem na sprawdzenie, co zawiera ramka danych:
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
str(people)Wynik:
'data.frame': 3 obs. of 3 variables:
$ name: chr "ada" "bo" "cy"
$ age : num 36 22 41
$ city: chr "london" "paris" "rome"Dane często są dostarczane jako tekst, po jednym wierszu w każdej linii. read.csv(text = lines) przekształca takie linie w ramkę danych, używając pierwszej linii jako nazw kolumn i automatycznie konwertując liczby:
lines <- c("item,qty", "tea,2", "jam,5")
orders <- read.csv(text = lines)
print(orders)
print(sum(orders$qty))Wynik:
item qty
1 tea 2
2 jam 5
[1] 7Wyzwanie
ŁatwyUzupełnij table_info(names, ages). Utwórz ramkę danych z kolumnami name i age na podstawie dwóch wektorów. Zwróć trzy wiersze: Rows: z liczbą wierszy, Columns: z nazwami kolumn połączonymi za pomocą , oraz Oldest: z imieniem z wiersza o największym wieku (pierwsze, jeśli wiek jest taki sam).
Dostarczony kod odczytuje imiona i wiek z dwóch wierszy z wartościami rozdzielonymi przecinkami, a następnie wyświetla każdy zwrócony wiersz.
Spróbuj swoich sił
table_info <- function(names, ages) {
# Wpisz tutaj swój kod
character(0)
}
# Dostarczony kod wejścia/wyjścia: pozostaw go bez zmian
input <- suppressWarnings(readLines(file("stdin")))
cat(table_info(strsplit(input[1], ",")[[1]], as.numeric(strsplit(input[2], ",")[[1]])), sep = "\n")
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ sterowania
1Łańcuchy znaków w szczegółach
Podciągi za pomocą substr()Formatowanie za pomocą sprintf()Dzielenie i łączenieWyszukiwanie w łańcuchach znakówZastępowanie tekstuPowtórka – kreator nazwy użytkownika4Macierze
Tworzenie macierzyIndeksowanie macierzyPodsumowania wierszy i kolumnDziałania na macierzachPowtórka – plan miejsc10Zaawansowane sterowanie przepływem
Funkcja switch()Wektorowe ifelse()repeat i breakFunkcje rekurencyjnePodsumowanie — klasyfikator ocen2Wyszukiwanie wartości po kluczach
Wyszukiwanie nazwanych elementów wektoraSprawdzanie kluczyDodawanie i usuwanie kluczyIterowanie po nazwachPowtórzenie — giełda5Projekt — dziennik ocen
Dodawanie uczniówZapisywanie ocen3Zbiory i zliczanie
Unikalne wartościOperacje na zbiorachTesty przynależnościZliczanie za pomocą table()Podsumowanie — goście wydarzenia6Funkcje jako wartości
Funkcje anonimowePrzekazywanie funkcjiZwracanie funkcjiDomknięcia ze stanemPowtórka — reguły rabatowe9Ramki danych
Tworzenie ramek danychKolumny i wierszeFiltrowanie wierszyDodawanie i sortowaniePodsumowanie – raport sprzedaży12Projekt – śledzenie wydatków
Rejestrowanie wydatkówŁączne wydatkiPoćwicz samodzielnie: Kompilator R online