Cadru de date R: Cum se creează, se adaugă, se selectează & Subset

Cuprins:

Anonim

Ce este un cadru de date?

Un cadru de date este o listă de vectori care au aceeași lungime. O matrice conține doar un singur tip de date, în timp ce un cadru de date acceptă diferite tipuri de date (numerice, de caractere, de factori etc.).

În acest tutorial, veți învăța-

  • Ce este un cadru de date?
  • Cum se creează un cadru de date
  • Adăugați o coloană la cadrul de date
  • Selectați o coloană a unui cadru de date
  • Subsetează un cadru de date

Cum se creează un cadru de date

Putem crea un cadru de date în R trecând variabila a, b, c, d în funcția data.frame (). Putem R să creăm un cadru de date și să numim coloanele cu nume () și să specificăm pur și simplu numele variabilelor.

data.frame(df, stringsAsFactors = TRUE)

Argumente :

  • df : Poate fi o matrice pentru a converti ca cadru de date sau o colecție de variabile de asociat
  • stringsAsFactors : convertiți șirul în factor în mod implicit

Putem crea un cadru de date în R pentru primul nostru set de date combinând patru variabile de aceeași lungime.

# Create a, b, c, d variablesa <- 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 framedf <- data.frame(a,b,c,d)df

Ieșire:

## a b c d## 1 1 book TRUE 2.5## 2 2 pen TRUE 8.0## 3 3 textbook TRUE 10.0## 4 4 pencil_case FALSE 7.0

Putem vedea că anteturile coloanei au același nume cu variabilele. Putem schimba numele coloanei în R cu numele funcției (). Verificați exemplul R create dataframe de mai jos:

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

Ieșire:

## 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 structurestr(df)

Ieșire:

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

În mod implicit, cadrul de date returnează variabilele șirului ca factor.

Slice Cadru de date

Este posibil să SLICE valorile unui cadru de date. Selectăm rândurile și coloanele pentru a reveni în paranteză precedate de numele cadrului de date.

Un cadru de date este compus din rânduri și coloane, df [A, B]. A reprezintă rândurile și B coloanele. Putem felia fie specificând rândurile și / sau coloanele.

Din imaginea 1, partea din stânga reprezintă rândurile, iar partea din dreapta sunt coloanele . Rețineți că simbolul: înseamnă a . De exemplu, 1: 3 intenționează să selecteze valori de la 1 la 3.

În diagrama de mai jos afișăm cum să accesați diferite selecții ale cadrului de date:

  • Săgeata galbenă selectează rândul 1 din coloana 2
  • Săgeata verde selectează rândurile de la 1 la 2
  • Săgeata roșie selectează coloana 1
  • Săgeata albastră selectează rândurile de la 1 la 3 și coloanele de la 3 la 4

Rețineți că, dacă lăsăm partea stângă necompletată, R va selecta toate rândurile . Prin analogie, dacă lăsăm partea dreaptă necompletată, R va selecta toate coloanele .

Putem rula codul în consolă:

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

Ieșire:

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

Ieșire:

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

Ieșire:

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

Ieșire:

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

De asemenea, este posibil să selectați coloanele cu numele lor. De exemplu, codul de mai jos extrage două coloane: ID și stocare.

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

Ieșire:

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

Adăugați o coloană la cadrul de date

De asemenea, puteți adăuga o coloană la un cadru de date. Trebuie să utilizați simbolul $ pentru a adăuga variabila R a cadrului de date și a adăuga o coloană la un cadru de date din R.

# Create a new vectorquantity <- c(10, 35, 40, 5)# Add `quantity` to the `df` data framedf$quantity <- quantitydf

Ieșire:

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

Notă: numărul de elemente din vector trebuie să fie egal cu numărul de elemente din cadrul de date. Executând următoarea declarație pentru a adăuga coloană la cadrul de date R

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

Dă eroare:

Error in `$<-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))replacement has 3 rows, data has 4 

Selectați o coloană a unui cadru de date

Uneori, trebuie să stocăm o coloană dintr-un cadru de date pentru utilizare viitoare sau să efectuăm operații pe o coloană. Putem folosi semnul $ pentru a selecta coloana dintr-un cadru de date.

# Select the column IDdf$ID

Ieșire:

## [1] 1 2 3 4

Subsetează un cadru de date

În secțiunea anterioară, am selectat o întreagă coloană fără condiție. Este posibil să se realizeze subseturi pe baza faptului că o anumită condiție a fost sau nu adevărată.

Folosim funcția subset ().

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

Dorim să returnăm numai articolele cu preț peste 10, putem face:

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

Ieșire:

ID items store price2 20 pen FALSE 83 30 textbook TRUE 104 40 pencil_case FALSE 7