Фрейм данных R: как создать, добавить, выбрать & Подмножество

Содержание:

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 ниже:

# 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 и store.

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

Выход:

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

Добавить столбец во фрейм данных

Вы также можете добавить столбец во фрейм данных. Вам нужно использовать символ $, чтобы добавить переменную фрейма данных R и добавить столбец в фрейм данных в 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