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.

Slice Data Frame

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.

Slice Data Frame

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