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.

Del dataramme

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.

Del dataramme

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