Что такое фрейм данных?
Кадр данных представляет собой список векторов, которые имеют одинаковую длину. Матрица содержит только один тип данных, в то время как фрейм данных принимает различные типы данных (числовые, символьные, факторные и т. Д.).
В этом уроке вы узнаете
- Что такое фрейм данных?
- Как создать фрейм данных
- Добавить столбец к фрейму данных
- Выберите столбец фрейма данных
- Подмножество фрейма данных
Как создать фрейм данных
Мы можем создать фрейм данных, передав переменную a, b, c, d в функцию data.frame (). Мы можем назвать столбцы с помощью name () и просто указать имя переменных.
data.frame(df, stringsAsFactors = TRUE)
Аргументы :
- df : это может быть матрица для преобразования в виде фрейма данных или набор переменных для объединения
- stringsAsFactors : конвертировать строку в фактор по умолчанию
Мы можем создать наш первый набор данных, комбинируя четыре переменные одинаковой длины.
# 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
Вывод:
## 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
Мы видим, что заголовки столбцов имеют то же имя, что и переменные. Мы можем изменить имя столбца с помощью имени функции (). Проверьте пример ниже:
# Name the data frame names(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 structure str(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
По умолчанию фрейм данных возвращает строковые переменные как фактор.
Фрейм данных среза
Можно ВЫРЕЗАТЬ значения Фрейма данных. Мы выбираем строки и столбцы для возврата в скобки, перед которыми стоит имя фрейма данных.
Кадр данных состоит из строк и столбцов, 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 2 df[1,2]
Вывод:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
Вывод:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
Вывод:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
Вывод:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
Также можно выбрать столбцы с их именами. Например, приведенный ниже код извлекает два столбца: идентификатор и хранилище.
# Slice with columns name df[, c('ID', 'store')]
Вывод:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
Добавить столбец к фрейму данных
Вы также можете добавить столбец к фрейму данных. Вам нужно использовать символ $, чтобы добавить новую переменную.
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
Вывод:
## 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
Примечание. Число элементов в векторе должно быть равно количеству элементов во фрейме данных. Выполнение следующего утверждения
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
Выдает ошибку:
Error in `$<-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
Выберите столбец фрейма данных
Иногда нам нужно сохранить столбец фрейма данных для будущего использования или выполнить операцию над столбцом. Мы можем использовать знак $, чтобы выбрать столбец из фрейма данных.
# Select the column ID df$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 5 subset(df, subset = price > 5)
Вывод:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7