R Data Frame: Hur man skapar, lägger till, väljer och delar

Vad är en dataram?

A dataram är en lista över vektorer som är lika långa. En matris innehåller bara en typ av data, medan en dataram accepterar olika datatyper (numeriska, tecken, faktor, etc.).

Hur man skapar en dataram

Vi kan skapa en dataram i R genom att skicka variabeln a,b,c,d till data.frame()-funktionen. Vi kan skapa en dataram och namnge kolumnerna med name() och helt enkelt ange namnet på variablerna.

data.frame(df, stringsAsFactors = TRUE)

Argument:

  • df: Det kan vara en matris att konvertera som en dataram eller en samling variabler som ska sammanfogas
  • stringsAsFactors: Konvertera sträng till faktor som standard

Vi kan skapa en dataram i R för vår första datamängd genom att kombinera fyra variabler av samma längd.

# 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

Produktion:

##     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 kolumnrubrikerna har samma namn som variablerna. Vi kan ändra kolumnnamn i R med funktionen names(). Kontrollera R create dataframe-exemplet nedan:

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

Produktion:

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

Produktion:

## '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 returnerar dataramen strängvariabler som en faktor.

Slice Data Frame

Det är möjligt att SLICE värdena för en dataram. Vi väljer de rader och kolumner som ska återgå till parentes före namnet på dataramen.

En dataram är sammansatt av rader och kolumner, df[A, B]. A representerar raderna och B kolumnerna. Vi kan skära antingen genom att ange rader och/eller kolumner.

Från bild 1 representerar den vänstra delen rader, och den högra delen är kolonner. Observera att symbolen : betyder till. Till exempel, 1:3 avser att välja värden från 1 till 3.

Slice Data Frame

I diagrammet nedan visar vi hur man kommer åt olika urval av dataramen:

  • Den gula pilen väljer v 1 i kolumn 2
  • Den gröna pilen väljer rader 1 till 2
  • Den röda pilen väljer kolumn 1
  • Den blå pilen väljer rader 1 till 3 och kolonner 3 till 4

Observera att om vi låter den vänstra delen vara tom kommer R att välja alla rader. I analogi, om vi låter den högra delen vara tom, kommer R att välja alla kolumner.

Slice Data Frame

Vi kan köra koden i konsolen:

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

Produktion:

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

Produktion:

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

Produktion:

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

Produktion:

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

Det är också möjligt att välja kolumnerna med deras namn. Till exempel extraherar koden nedan två kolumner: ID och butik.

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

Produktion:

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

Lägg till en kolumn till dataram

Du kan också lägga till en kolumn till en dataram. Du måste använda symbolen $ för att lägga till dataram R-variabel och lägga till en kolumn till en dataram i R.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

Produktion:

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

Notera: Antalet element i vektorn måste vara lika med antalet element i dataramen. Kör följande sats för att lägga till kolumn till dataram R

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

Ger fel:

Error in `

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

Välj en kolumn i en dataram

Ibland behöver vi lagra en kolumn i en dataram för framtida användning eller utföra operation på en kolumn. Vi kan använda $-tecknet för att välja kolumnen från en dataram.

# Select the column ID
df$ID

Produktion:

## [1] 1 2 3 4

Delinställ en dataram

I föregående avsnitt valde vi en hel kolumn utan villkor. Är det möjligt att delmängd baserat på om ett visst villkor var sant eller inte.

Vi använder subset()-funktionen.

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

Vi vill endast returnera varor med pris över 10, vi kan göra:

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

Produktion:

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