R Dataramme: Sådan oprettes, tilføjes, vælges og undersæt

Hvad er en dataramme?

A dataramme er en liste over vektorer, der er lige lange. En matrix indeholder kun én type data, mens en dataramme accepterer forskellige datatyper (numerisk, tegn, faktor osv.).

Sådan opretter du en dataramme

Vi kan oprette en dataramme i R ved at overføre variablen a,b,c,d til data.frame()-funktionen. Vi kan R oprette en dataramme og navngive kolonnerne med name() og blot angive navnet på variablerne.

data.frame(df, stringsAsFactors = TRUE)

argumenter:

  • df: Det kan være en matrix, der skal konverteres som en dataramme eller en samling af variable, der skal forbindes
  • stringsAsFactors: Konverter streng til faktor som standard

Vi kan oprette en dataramme i R for vores første datasæt ved at kombinere fire variable af samme længde.

# 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

Output:

##     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 kolonneoverskrifterne har samme navn som variablerne. Vi kan ændre kolonnenavn i R med funktionen navne(). Tjek R-opret dataramme-eksemplet nedenfor:

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

Output:

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

Output:

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

Udsnit dataramme

Det er muligt at SLICE værdier af en dataramme. Vi vælger de rækker og kolonner, der skal vendes tilbage i parentes foran navnet på datarammen.

En dataramme er sammensat af rækker og kolonner, df[A, B]. A repræsenterer rækkerne og B kolonnerne. Vi kan skære enten ved at specificere rækkerne og/eller kolonnerne.

Fra billede 1 repræsenterer den venstre del rækker, og den højre del er kolonner. Bemærk at symbolet : betyder til. For eksempel har 1:3 til hensigt at vælge værdier fra 1 til 3.

Udsnit dataramme

I nedenstående diagram viser vi, hvordan du får adgang til forskellige valg af datarammen:

  • Den gule pil vælger række 1 i kolonne 2
  • Den grønne pil vælger rækker 1 til 2
  • Den røde pil vælger kolonne 1
  • Den blå pil vælger rækker 1 til 3 og kolonner 3 til 4

Bemærk, at hvis vi lader venstre del tom, vil R vælge alle rækkerne. Analogt, hvis vi lader den højre del være tom, vil R vælge alle kolonnerne.

Udsnit dataramme

Vi kan køre koden i konsollen:

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

Output:

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

Output:

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

Output:

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

Output:

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

Det er også muligt at vælge kolonnerne med deres navne. For eksempel udtrækker koden nedenfor to kolonner: ID og butik.

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

Output:

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

Føj en kolonne til dataramme

Du kan også tilføje en kolonne til en dataramme. Du skal bruge symbolet $ for at tilføje dataramme R-variabel og tilføje 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

Output:

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

Bemærk: Antallet af elementer i vektoren skal være lig med antallet af elementer i datarammen. Udførelse af følgende sætning for at tilføje kolonne til dataramme R

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

Giver fejl:

Error in `

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

Vælg en kolonne i en dataramme

Nogle gange er vi nødt til at gemme en kolonne i en dataramme til fremtidig brug eller udføre operation på en kolonne. Vi kan bruge $-tegnet til at vælge kolonnen fra en dataramme.

# Select the column ID
df$ID

Output:

## [1] 1 2 3 4

Delsæt en dataramme

I det foregående afsnit valgte vi en hel kolonne uden betingelse. Det er muligt at delmængde baseret på, om en bestemt betingelse var sand eller ej.

Vi bruger subset()-funktionen.

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

Vi ønsker kun at returnere varer med en pris over 10, vi kan gøre:

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

Output:

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

Opsummer dette indlæg med: