R Dataramme: Hvordan lage, legge til, velge og delsett
Hva er en dataramme?
A Dataramme er en liste over vektorer som er like lange. En matrise inneholder kun én type data, mens en dataramme godtar forskjellige datatyper (numerisk, tegn, faktor, etc.).
Hvordan lage en dataramme
Vi kan lage en dataramme i R ved å sende variabelen a,b,c,d inn i data.frame()-funksjonen. Vi kan R lage dataramme og navngi kolonnene med name() og ganske enkelt spesifisere navnet på variablene.
data.frame(df, stringsAsFactors = TRUE)
argumenter:
- df: Det kan være en matrise som skal konverteres som en dataramme eller en samling variabler som skal slås sammen
- stringsAsFactors: Konverter streng til faktor som standard
Vi kan lage en dataramme i R for vårt første datasett ved å kombinere fire variabler av samme lengde.
# 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
Utgang:
## 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
Vi kan se kolonneoverskriftene har samme navn som variablene. Vi kan endre kolonnenavn i R med funksjonsnavnene(). Sjekk eksempelet på R opprette dataramme nedenfor:
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
Utgang:
## 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)
Utgang:
## '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
Som standard returnerer dataramme strengvariabler som en faktor.
Del dataramme
Det er mulig å SLICE verdiene til en dataramme. Vi velger radene og kolonnene som skal gå tilbake i parentes foran navnet på datarammen.
En dataramme er sammensatt av rader og kolonner, df[A, B]. A representerer radene og B kolonnene. Vi kan dele enten ved å spesifisere radene og/eller kolonnene.
Fra bilde 1 representerer den venstre delen rader, og den høyre delen er kolonner. Merk at symbolet : betyr til. For eksempel har 1:3 til hensikt å velge verdier fra 1 til 3.
I diagrammet nedenfor viser vi hvordan du får tilgang til forskjellige utvalg av datarammen:
- Den gule pilen velger rad 1 i kolonne 2
- Den grønne pilen velger rader 1 til 2
- Den røde pilen velger kolonne 1
- Den blå pilen velger rader 1 til 3 og kolonner 3 til 4
Legg merke til at hvis vi lar venstre del tom, vil R velge alle radene. I analogi, hvis vi lar høyre del tom, vil R velge alle kolonnene.
Vi kan kjøre koden i konsollen:
## Select row 1 in column 2 df[1,2]
Utgang:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Utgang:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Utgang:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Utgang:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
Det er også mulig å velge kolonnene med deres navn. For eksempel trekker koden nedenfor ut to kolonner: ID og butikk.
# Slice with columns name df[, c('ID', 'store')]
Utgang:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Legg til en kolonne til dataramme
Du kan også legge til en kolonne til en dataramme. Du må bruke symbolet $ for å legge til dataramme R-variabel og legge til en kolonne til en dataramme i R.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Utgang:
## 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
Merk: Antall elementer i vektoren må være lik antall elementer i dataramme. Utføre følgende setning for å legge til kolonne til dataramme R
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Gir feil:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Velg en kolonne i en dataramme
Noen ganger må vi lagre en kolonne i en dataramme for fremtidig bruk eller utføre operasjon på en kolonne. Vi kan bruke $-tegnet for å velge kolonnen fra en dataramme.
# Select the column ID df$ID
Utgang:
## [1] 1 2 3 4
Delsett en dataramme
I forrige avsnitt valgte vi en hel kolonne uten betingelser. Det er mulig å undergruppe basert på om en bestemt tilstand var sann eller ikke.
Vi bruker funksjonen subset().
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
Vi ønsker kun å returnere varene med pris over 10, vi kan gjøre:
# Select price above 5 subset(df, subset = price > 5)
Utgang:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7