Menu
Coddy logo textTech

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   rome

nrow() 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] 7
challenge icon

Wyzwanie

Łatwy

Uzupeł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")
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator R online