R Data Frame: Как да създадете, добавите, изберете & Подмножество

Съдържание:

Anonim

Какво представлява рамката за данни?

А данни рамка е даден списък на вектори, които са с еднаква дължина. Матрицата съдържа само един тип данни, докато рамката за данни приема различни типове данни (числови, знакови, коефициентни и т.н.).

В този урок ще научите -

  • Какво представлява рамката за данни?
  • Как да създам рамка за данни
  • Добавяне на колона към рамката за данни
  • Изберете колона на рамка за данни
  • Подгрупирайте рамка за данни

Как да създам рамка за данни

Можем да създадем кадър от данни в R, като предадем променливата a, b, c, d във функцията data.frame (). Можем R да създадем кадър от данни и да назовем колоните с name () и просто да посочим името на променливите.

data.frame(df, stringsAsFactors = TRUE)

Аргументи :

  • df : Може да бъде матрица, която да се преобразува като рамка с данни или колекция от променливи, които да се присъединят
  • stringsAsFactors : Конвертира низа във фактор по подразбиране

Можем да създадем кадър от данни в R за първия ни набор от данни, като комбинираме четири променливи със същата дължина.

# 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

Изход:

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

Можем да видим, че заглавките на колоните имат същото име като променливите. Можем да променим името на колоната в R с имената на функциите (). Проверете примера на R create dataframe по-долу:

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

Изход:

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

Изход:

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

По подразбиране рамката за данни връща низови променливи като фактор.

Рамка за данни на парче

Възможно е да SLICE стойности на рамка за данни. Избираме редовете и колоните, които да се върнат в скоби, предшествани от името на рамката с данни.

Рамката за данни се състои от редове и колони, df [A, B]. A представлява редовете, а B колоните. Можем да нарязваме или като посочваме редовете и / или колоните.

От снимка 1 лявата част представлява редовете, а дясната част е колоните . Имайте предвид, че символа: средство за . Например 1: 3 възнамерява да избере стойности от 1 до 3.

В диаграмата по-долу показваме как да получим достъп до различен избор на рамката за данни:

  • Жълтата стрелка избира реда 1 в колона 2
  • Зелената стрелка избира редовете от 1 до 2
  • Червената стрелка избира колона 1
  • Синята стрелка избира редовете от 1 до 3 и колоните от 3 до 4

Имайте предвид, че ако оставим лявата част празна, R ще избере всички редове . По аналогия, ако оставим дясната част празна, R ще избере всички колони .

Можем да стартираме кода в конзолата:

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

Изход:

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

Изход:

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

Изход:

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

Изход:

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

Също така е възможно да изберете колоните с техните имена. Например, кодът по-долу извлича две колони: ID и съхранение.

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

Изход:

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

Добавяне на колона към рамката за данни

Можете също да добавите колона към Data Frame. Трябва да използвате символа $, за да добавите променлива на dataframe R и да добавите колона към dataframe в R.

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

Изход:

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

Забележка: Броят на елементите във вектора трябва да бъде равен на броя на елементите в рамката с данни. Изпълнение на следния оператор за добавяне на колона към рамка с данни R

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

Дава грешка:

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

Изберете колона на рамка за данни

Понякога трябва да съхраним колона от рамка с данни за бъдеща употреба или да извършим операция върху колона. Можем да използваме знака $, за да изберем колоната от рамка с данни.

# Select the column IDdf$ID

Изход:

## [1] 1 2 3 4

Подгрупирайте рамка за данни

В предишния раздел избрахме цяла колона без условие. Възможно е да се подгрупа въз основа на това дали определено условие е било вярно или не.

Използваме функцията subset ().

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

Искаме да върнем само артикулите с цена над 10, можем да направим:

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

Изход:

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