R Data Frame: jak tworzyć, dołączać, wybierać i Podzbiór

Spisie treści:

Anonim

Co to jest ramka danych?

Ramka danych jest lista wektorów, które mają jednakową długość. Macierz zawiera tylko jeden typ danych, podczas gdy ramka danych akceptuje różne typy danych (numeryczne, znakowe, współczynnikowe itp.).

W tym samouczku nauczysz się:

  • Co to jest ramka danych?
  • Jak utworzyć ramkę danych
  • Dołącz kolumnę do ramki danych
  • Wybierz kolumnę ramki danych
  • Podzbiór ramki danych

Jak utworzyć ramkę danych

Możemy stworzyć ramkę danych w R, przekazując zmienną a, b, c, d do funkcji data.frame (). Możemy R utworzyć ramkę danych i nazwać kolumny nazwą () i po prostu określić nazwy zmiennych.

data.frame(df, stringsAsFactors = TRUE)

Argumenty :

  • df : Może to być macierz do konwersji jako ramka danych lub zbiór zmiennych do połączenia
  • stringsAsFactors : Domyślnie konwertuj ciąg na czynnik

Możemy utworzyć ramkę danych w R dla naszego pierwszego zestawu danych, łącząc cztery zmienne o tej samej długości.

# 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

Wynik:

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

Widzimy, że nagłówki kolumn mają taką samą nazwę jak zmienne. Możemy zmienić nazwę kolumny w R za pomocą nazw funkcji (). Sprawdź poniższy przykład R create dataframe:

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

Wynik:

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

Wynik:

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

Domyślnie ramka danych zwraca jako czynnik zmienne łańcuchowe.

Ramka danych wycinka

Możliwe jest SLICE wartości ramki danych. Zaznaczamy wiersze i kolumny, które mają powrócić do nawiasu, poprzedzone nazwą ramki danych.

Ramka danych składa się z wierszy i kolumn, df [A, B]. A reprezentuje wiersze, a B kolumny. Możemy ciąć, określając wiersze i / lub kolumny.

Na rysunku 1 lewa część przedstawia rzędy, a prawa część to kolumny . Zwróć uwagę, że symbol: oznacza do . Na przykład 1: 3 ma na celu wybranie wartości od 1 do 3.

Na poniższym schemacie pokazujemy, jak uzyskać dostęp do różnych opcji wyboru ramki danych:

  • Żółta strzałka wybiera wiersz 1 w kolumnie 2
  • Zielona strzałka wybiera rzędy od 1 do 2
  • Czerwona strzałka wskazuje kolumnę 1
  • Niebieska strzałka wybiera wiersze od 1 do 3 i kolumny od 3 do 4

Zwróć uwagę, że jeśli pozostawimy lewą część pustą, R wybierze wszystkie wiersze . Analogicznie, jeśli pozostawimy prawą część pustą, R zaznaczy wszystkie kolumny .

Możemy uruchomić kod w konsoli:

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

Wynik:

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

Wynik:

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

Wynik:

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

Wynik:

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

Możliwe jest również wybranie kolumn wraz z ich nazwami. Na przykład poniższy kod wyodrębnia dwie kolumny: ID i store.

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

Wynik:

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

Dołącz kolumnę do ramki danych

Możesz również dołączyć kolumnę do ramki danych. Musisz użyć symbolu $, aby dołączyć zmienną Dataframe R i dodać kolumnę do ramki danych w R.

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

Wynik:

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

Uwaga: liczba elementów w wektorze musi być równa liczbie elementów w ramce danych. Wykonanie poniższej instrukcji w celu dodania kolumny do ramki danych R.

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

Daje błąd:

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

Wybierz kolumnę ramki danych

Czasami musimy przechowywać kolumnę ramki danych do wykorzystania w przyszłości lub wykonać operację na kolumnie. Możemy użyć znaku $, aby wybrać kolumnę z ramki danych.

# Select the column IDdf$ID

Wynik:

## [1] 1 2 3 4

Podzbiór ramki danych

W poprzedniej sekcji wybraliśmy całą kolumnę bez warunku. Możliwe jest podzbiór na podstawie tego, czy określony warunek był spełniony.

Używamy funkcji subset ().

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

Chcemy zwrócić tylko przedmioty z ceną powyżej 10, możemy zrobić:

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

Wynik:

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