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


