R okvir podataka: Kako stvoriti, dodati, odabrati i podskup
Što je podatkovni okvir?
A podatkovni okvir je popis vektora koji su jednake duljine. Matrica sadrži samo jednu vrstu podataka, dok podatkovni okvir prihvaća različite vrste podataka (numeričke, znakovne, faktorske, itd.).
Kako stvoriti podatkovni okvir
Možemo stvoriti podatkovni okvir u R prosljeđivanjem varijable a,b,c,d u funkciju data.frame(). Možemo R stvoriti podatkovni okvir i imenovati stupce s name() i jednostavno odrediti nazive varijabli.
data.frame(df, stringsAsFactors = TRUE)
argumenti:
- df: To može biti matrica koja se pretvara u podatkovni okvir ili zbirka varijabli za spajanje
- stringsAsFactors: Pretvori niz u faktor prema zadanim postavkama
Možemo stvoriti podatkovni okvir u R-u za naš prvi skup podataka kombiniranjem četiriju varijabli iste duljine.
# Create a, b, c, d variables a <- 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 frame df <- data.frame(a,b,c,d) df
Izlaz:
## a b c d ## 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
Vidimo da zaglavlja stupaca imaju isti naziv kao i varijable. Naziv stupca u R možemo promijeniti pomoću funkcije names(). Pogledajte primjer R create dataframe u nastavku:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Izlaz:
## 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 structure str(df)
Izlaz:
## '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
Prema zadanim postavkama okvir podataka vraća varijable niza kao faktor.
Slice Data Frame
Moguće je SLICE vrijednosti podatkovnog okvira. Odabiremo retke i stupce za povratak u zagradu ispred kojih stoji naziv okvira podataka.
Podatkovni okvir sastoji se od redaka i stupaca, df[A, B]. A predstavlja retke, a B stupce. Možemo rezati tako da navedemo retke i/ili stupce.
Sa slike 1, lijevi dio predstavlja redovi, a desni dio je stupovi. Imajte na umu da simbol : znači do. Na primjer, 1:3 namjerava odabrati vrijednosti od 1 do 3.
U donjem dijagramu prikazujemo kako pristupiti različitim odabirima podatkovnog okvira:
- Žuta strelica odabire red 1 u kolona 2
- Zelena strelica odabire redaka 1 2 se
- Crvena strelica odabire kolona 1
- Plava strelica odabire redaka 1 do 3 i stupovi 3 4 se
Imajte na umu da, ako ostavimo lijevi dio prazan, R će odabrati svi redovi. Analogno tome, ako pustimo desni dio prazan, R će odabrati sve kolone.
Možemo pokrenuti kod u konzoli:
## Select row 1 in column 2 df[1,2]
Izlaz:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Izlaz:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Izlaz:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Izlaz:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
Također je moguće odabrati stupce s njihovim nazivima. Na primjer, kod u nastavku izvlači dva stupca: ID i pohranu.
# Slice with columns name df[, c('ID', 'store')]
Izlaz:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Dodavanje stupca u okvir podataka
Također možete dodati stupac podatkovnom okviru. Morate upotrijebiti simbol $ za dodavanje R varijable podatkovnog okvira i dodavanje stupca podatkovnom okviru u R.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Izlaz:
## 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
Napomena: Broj elemenata u vektoru mora biti jednak broju elemenata u okviru podataka. Izvršavanje sljedeće izjave za dodavanje stupca u podatkovni okvir R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Daje grešku:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Odaberite stupac podatkovnog okvira
Ponekad moramo pohraniti stupac okvira podataka za buduću upotrebu ili izvršiti operaciju na stupcu. Možemo koristiti znak $ za odabir stupca iz podatkovnog okvira.
# Select the column ID df$ID
Izlaz:
## [1] 1 2 3 4
Podskup podatkovnog okvira
U prethodnom odjeljku odabrali smo cijeli stupac bez uvjeta. Moguće je da se podset na temelju toga je li određeni uvjet bio istinit ili nije.
Koristimo funkciju subset().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Želimo vratiti samo artikle čija je cijena iznad 10, možemo učiniti:
# Select price above 5 subset(df, subset = price > 5)
Izlaz:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7