R-tietokehys: Luominen, liittäminen, valinta ja osajoukko

Mikä on tietokehys?

A datakehys on luettelo vektoreista, jotka ovat yhtä pitkiä. Matriisi sisältää vain yhden tyyppistä dataa, kun taas tietokehys hyväksyy erilaisia ​​tietotyyppejä (numeerinen, merkki, tekijä jne.).

Tietokehyksen luominen

Voimme luoda datakehyksen sisään R välittämällä muuttuja a,b,c,d data.frame()-funktioon. Voimme luoda tietokehyksen ja nimetä sarakkeet nimellä name() ja yksinkertaisesti määrittää muuttujien nimet.

data.frame(df, stringsAsFactors = TRUE)

argumentit:

  • df: Se voi olla matriisi, joka muunnetaan tietokehykseksi tai kokoelma muuttujia, jotka yhdistetään
  • stringsAsFactors: Muunna merkkijono tekijäksi oletuksena

Voimme luoda tietokehyksen R:ssä ensimmäiselle tietojoukollemme yhdistämällä neljä samanpituista muuttujaa.

# 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

lähtö:

##     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

Voimme nähdä, että sarakeotsikoilla on sama nimi kuin muuttujilla. Voimme muuttaa sarakkeen nimeä R:ssä funktiolla names(). Tarkista alla oleva R-luontitietokehyksen esimerkki:

# Name the data frame
names(df) <- c('ID', 'items', 'store', 'price')
df

lähtö:

##   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)

lähtö:

## '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

Oletusarvoisesti tietokehys palauttaa merkkijonomuuttujat tekijänä.

Leikkaa tietokehys

Datakehyksen arvot on mahdollista SIIRTOA. Valitsemme rivit ja sarakkeet, jotka palautetaan hakasulkeisiin, joita edeltää tietokehyksen nimi.

Tietokehys koostuu riveistä ja sarakkeista, df[A, B]. A edustaa rivejä ja B sarakkeita. Voimme viipaloida joko määrittämällä rivit ja/tai sarakkeet.

Kuvasta 1 vasen osa edustaa rivit, ja oikea osa on sarakkeet. Huomaa, että symboli : tarkoittaa että. Esimerkiksi 1:3 aikoo valita arvot 1:stä että 3.

Leikkaa tietokehys

Alla olevassa kaaviossa näytämme kuinka pääset käsiksi tietokehyksen erilaisiin valintoihin:

  • Keltainen nuoli valitsee rivi 1 vuonna sarake 2
  • Vihreä nuoli valitsee riviä 1 ja 2
  • Punainen nuoli valitsee sarake 1
  • Sininen nuoli valitsee riviä 1-3 ja sarakkeet 3 ja 4

Huomaa, että jos jätämme vasemman osan tyhjäksi, R valitsee kaikki rivit. Analogisesti, jos jätämme oikean osan tyhjäksi, R valitsee kaikki sarakkeet.

Leikkaa tietokehys

Voimme ajaa koodin konsolissa:

## Select row 1 in column 2
df[1,2]

lähtö:

## [1] book
## Levels: book pen pencil_case textbook
## Select Rows 1 to 2
df[1:2,]

lähtö:

##   ID items store price
## 1 10  book  TRUE   2.5
## 2 20   pen FALSE   8.0
## Select Columns 1
df[,1]

lähtö:

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4
df[1:3, 3:4]

lähtö:

##   store price
## 1  TRUE   2.5
## 2 FALSE   8.0
## 3  TRUE  10.0

On myös mahdollista valita sarakkeet niiden nimillä. Esimerkiksi alla oleva koodi poimii kaksi saraketta: ID ja kauppa.

# Slice with columns name
df[, c('ID', 'store')]

lähtö:

##   ID store
## 1 10  TRUE
## 2 20 FALSE
## 3 30  TRUE
## 4 40 FALSE

Liitä sarake tietokehykseen

Voit myös liittää sarakkeen tietokehykseen. Sinun on käytettävä symbolia $ liittääksesi datakehyksen R muuttujan ja lisätäksesi sarakkeen datakehykseen R:ssä.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

lähtö:

##   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

Huomautus: Vektorin elementtien lukumäärän on oltava yhtä suuri kuin tietokehyksen elementtien lukumäärä. Suorita seuraava käsky lisätäksesi sarakkeen tietokehykseen R

quantity <- c(10, 35, 40)
# Add `quantity` to the `df` data frame
df$quantity <- quantity

Antaa virheen:

Error in `

lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))
 replacement has 3 rows, data has 4

Valitse tietokehyksen sarake

Joskus meidän on tallennettava tietokehyksen sarake tulevaa käyttöä varten tai suoritettava toiminto sarakkeelle. Voimme käyttää $-merkkiä valitaksesi sarakkeen tietokehyksestä.

# Select the column ID
df$ID

lähtö:

## [1] 1 2 3 4

Alajoukko tietokehys

Edellisessä osiossa valitsimme kokonaisen sarakkeen ilman ehtoja. Onko mahdollista osajoukko sen perusteella, onko tietty ehto totta vai ei.

Käytämme subset()-funktiota.

subset(x, condition)
arguments:
- x: data frame used to perform the subset
- condition: define the conditional statement

Haluamme palauttaa vain tuotteet, joiden hinta on yli 10, voimme tehdä:

# Select price above 5
subset(df, subset = price > 5)

lähtö:

ID       items store price
2 20         pen FALSE     8
3 30    textbook  TRUE    10
4 40 pencil_case FALSE     7

Tiivistä tämä viesti seuraavasti: