R Andmeraam: kuidas luua, lisada, valida ja alamhulka
Mis on andmeraam?
A andmeraam on võrdse pikkusega vektorite loend. Maatriks sisaldab ainult ühte tüüpi andmeid, samas kui andmeraam aktsepteerib erinevaid andmetüüpe (numbriline, märk, tegur jne).
Kuidas luua andmeraami
Saame luua andmeraami R edastades muutuja a,b,c,d funktsiooni data.frame(). Saame R luua andmeraami ja anda veergudele nimed nimega name() ja lihtsalt määrata muutujate nimed.
data.frame(df, stringsAsFactors = TRUE)
Argumendid:
- df: see võib olla andmeraamiks teisendatav maatriks või ühendatavate muutujate kogu
- stringsAsFactors: teisendab stringi vaikimisi faktoriks
Saame luua R-s andmeraami oma esimese andmekogumi jaoks, kombineerides nelja sama pikkusega muutujat.
# 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
Väljund:
## 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
Näeme, et veerupäistel on muutujatega sama nimi. Saame muuta veeru nime R-is funktsiooniga names (). Kontrollige allolevat R-i andmeraami loomise näidet:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Väljund:
## 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)
Väljund:
## '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
Vaikimisi tagastab andmeraam tegurina stringi muutujad.
Lõika andmeraam
Andmeraami väärtusi on võimalik SLICE. Valime read ja veerud, mis naasevad sulgudesse, millele eelneb andmeraami nimi.
Andmeraam koosneb ridadest ja veergudest, df[A, B]. A tähistab ridu ja B veerge. Tükeldada saame ridade ja/või veergude määramise teel.
Pildilt 1 kujutab vasak osa read, ja parem osa on veerud. Pange tähele, et sümbol : tähendab et. Näiteks 1:3 eesmärk on valida väärtused 1 hulgast et 3.
Alloleval diagrammil näeme, kuidas pääseda juurde andmeraami erinevatele valikutele:
- Kollane nool valib rida 1 sisse veerg 2
- Roheline nool valib rida 1 et 2
- Punane nool valib veerg 1
- Sinine nool valib rida 1 kuni 3 ja veerud 3 et 4
Pange tähele, et kui jätame vasakpoolse osa tühjaks, valib R kõik read. Analoogiliselt, kui jätame parema osa tühjaks, valib R kõik veerud.
Koodi saame konsoolis käivitada:
## Select row 1 in column 2 df[1,2]
Väljund:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Väljund:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Väljund:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Väljund:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
Samuti on võimalik valida veerge nende nimedega. Näiteks allolev kood eraldab kaks veergu: ID ja pood.
# Slice with columns name df[, c('ID', 'store')]
Väljund:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Lisage andmeraamile veerg
Samuti saate andmeraamile veeru lisada. Peate kasutama sümbolit $, et lisada andmeraami R muutuja ja lisada veerg andmeraamile R-is.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Väljund:
## 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
Märkus. Vektori elementide arv peab olema võrdne andmeraami elementide arvuga. Järgmise avalduse täitmine andmeraamile R veeru lisamiseks
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Annab vea:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Valige andmeraami veerg
Mõnikord peame salvestama andmeraami veeru edaspidiseks kasutamiseks või tegema veeruga toiminguid. Andmeraamist veeru valimiseks saame kasutada märki $.
# Select the column ID df$ID
Väljund:
## [1] 1 2 3 4
Andmeraami alamkomplekt
Eelmises jaotises valisime terve veeru ilma tingimusteta. On võimalik alamhulk selle põhjal, kas teatud tingimus oli tõsi või mitte.
Kasutame funktsiooni subset().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Soovime tagastada ainult need kaubad, mille hind on üle 10, saame teha:
# Select price above 5 subset(df, subset = price > 5)
Väljund:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7