Co to jest ramka danych?
Ramka danych jest lista wektorów, które mają jednakową długość. Macierz zawiera tylko jeden typ danych, podczas gdy ramka danych akceptuje różne typy danych (numeryczne, znakowe, współczynnikowe itp.).
W tym samouczku nauczysz się:
- Co to jest ramka danych?
- Jak utworzyć ramkę danych
- Dołącz kolumnę do ramki danych
- Wybierz kolumnę ramki danych
- Podzbiór ramki danych
Jak utworzyć ramkę danych
Możemy stworzyć ramkę danych w R, przekazując zmienną a, b, c, d do funkcji data.frame (). Możemy R utworzyć ramkę danych i nazwać kolumny nazwą () i po prostu określić nazwy zmiennych.
data.frame(df, stringsAsFactors = TRUE)
Argumenty :
- df : Może to być macierz do konwersji jako ramka danych lub zbiór zmiennych do połączenia
- stringsAsFactors : Domyślnie konwertuj ciąg na czynnik
Możemy utworzyć ramkę danych w R dla naszego pierwszego zestawu danych, łącząc cztery zmienne o tej samej długości.
# Create a, b, c, d variablesa <- c(10,20,30,40)b <- c('book', 'pen', 'textbook', 'pencil_case')c <- c(TRUE,FALSE,TRUE,FALSE)d <- c(2.5, 8, 10, 7)# Join the variables to create a data framedf <- data.frame(a,b,c,d)df
Wynik:
## a b c d## 1 1 book TRUE 2.5## 2 2 pen TRUE 8.0## 3 3 textbook TRUE 10.0## 4 4 pencil_case FALSE 7.0
Widzimy, że nagłówki kolumn mają taką samą nazwę jak zmienne. Możemy zmienić nazwę kolumny w R za pomocą nazw funkcji (). Sprawdź poniższy przykład R create dataframe:
# Name the data framenames(df) <- c('ID', 'items', 'store', 'price')df
Wynik:
## ID items store price## 1 10 book TRUE 2.5## 2 20 pen FALSE 8.0## 3 30 textbook TRUE 10.0## 4 40 pencil_case FALSE 7.0
# Print the structurestr(df)
Wynik:
## 'data.frame': 4 obs. of 4 variables:## $ ID : num 10 20 30 40## $ items: Factor w/ 4 levels "book","pen","pencil_case",… : 1 2 4 3## $ store: logi TRUE FALSE TRUE FALSE## $ price: num 2.5 8 10 7
Domyślnie ramka danych zwraca jako czynnik zmienne łańcuchowe.
Ramka danych wycinka
Możliwe jest SLICE wartości ramki danych. Zaznaczamy wiersze i kolumny, które mają powrócić do nawiasu, poprzedzone nazwą ramki danych.
Ramka danych składa się z wierszy i kolumn, df [A, B]. A reprezentuje wiersze, a B kolumny. Możemy ciąć, określając wiersze i / lub kolumny.
Na rysunku 1 lewa część przedstawia rzędy, a prawa część to kolumny . Zwróć uwagę, że symbol: oznacza do . Na przykład 1: 3 ma na celu wybranie wartości od 1 do 3.
Na poniższym schemacie pokazujemy, jak uzyskać dostęp do różnych opcji wyboru ramki danych:
- Żółta strzałka wybiera wiersz 1 w kolumnie 2
- Zielona strzałka wybiera rzędy od 1 do 2
- Czerwona strzałka wskazuje kolumnę 1
- Niebieska strzałka wybiera wiersze od 1 do 3 i kolumny od 3 do 4
Zwróć uwagę, że jeśli pozostawimy lewą część pustą, R wybierze wszystkie wiersze . Analogicznie, jeśli pozostawimy prawą część pustą, R zaznaczy wszystkie kolumny .
Możemy uruchomić kod w konsoli:
## Select row 1 in column 2df[1,2]
Wynik:
## [1] book## Levels: book pen pencil_case textbook
## Select Rows 1 to 2df[1:2,]
Wynik:
## ID items store price## 1 10 book TRUE 2.5## 2 20 pen FALSE 8.0
## Select Columns 1df[,1]
Wynik:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4df[1:3, 3:4]
Wynik:
## store price## 1 TRUE 2.5## 2 FALSE 8.0## 3 TRUE 10.0
Możliwe jest również wybranie kolumn wraz z ich nazwami. Na przykład poniższy kod wyodrębnia dwie kolumny: ID i store.
# Slice with columns namedf[, c('ID', 'store')]
Wynik:
## ID store## 1 10 TRUE## 2 20 FALSE## 3 30 TRUE## 4 40 FALSE
Dołącz kolumnę do ramki danych
Możesz również dołączyć kolumnę do ramki danych. Musisz użyć symbolu $, aby dołączyć zmienną Dataframe R i dodać kolumnę do ramki danych w R.
# Create a new vectorquantity <- c(10, 35, 40, 5)# Add `quantity` to the `df` data framedf$quantity <- quantitydf
Wynik:
## ID items store price quantity## 1 10 book TRUE 2.5 10## 2 20 pen FALSE 8.0 35## 3 30 textbook TRUE 10.0 40## 4 40 pencil_case FALSE 7.0 5
Uwaga: liczba elementów w wektorze musi być równa liczbie elementów w ramce danych. Wykonanie poniższej instrukcji w celu dodania kolumny do ramki danych R.
quantity <- c(10, 35, 40)# Add `quantity` to the `df` data framedf$quantity <- quantity
Daje błąd:
Error in `$<-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))replacement has 3 rows, data has 4
Wybierz kolumnę ramki danych
Czasami musimy przechowywać kolumnę ramki danych do wykorzystania w przyszłości lub wykonać operację na kolumnie. Możemy użyć znaku $, aby wybrać kolumnę z ramki danych.
# Select the column IDdf$ID
Wynik:
## [1] 1 2 3 4
Podzbiór ramki danych
W poprzedniej sekcji wybraliśmy całą kolumnę bez warunku. Możliwe jest podzbiór na podstawie tego, czy określony warunek był spełniony.
Używamy funkcji subset ().
subset(x, condition)arguments:- x: data frame used to perform the subset- condition: define the conditional statement
Chcemy zwrócić tylko przedmioty z ceną powyżej 10, możemy zrobić:
# Select price above 5subset(df, subset = price > 5)
Wynik:
ID items store price2 20 pen FALSE 83 30 textbook TRUE 104 40 pencil_case FALSE 7