Перейти к основному содержимому
Модуль 2 · Урок 1 из 23/10 в курсе~12 min
Уроки модуля (1/2)

Кадры данных

В отличие от матриц, которые могут содержать элементы только одного типа, Кадры данных представляют собой наиболее широко используемую табличную структуру данных в R для анализа реальных данных.

Кадр данных — это таблица, в которой каждый столбец может содержать разные типы данных (например, числовой столбец, текстовый столбец и логический столбец), но все столбцы должны иметь одинаковую длину.

Создание фрейма данных

Чтобы создать фрейм данных, используйте функцию data.frame(), определив имена столбцов и назначив им векторы:

R
# Create a sample data frame
students <- data.frame(
  name = c("Alice", "Bob", "Charlie"),
  grade = c(28, 24, 30),
  passed = c(TRUE, TRUE, TRUE)
)
print(students)

Доступ к столбцам и строкам

Существует несколько способов извлечения данных и манипулирования ими во фрейме данных:

  1. Использование оператора доллара $: позволяет извлечь один столбец в виде вектора.
    R
    grades <- students$grade
    # grades will be the vector c(28, 24, 30)
  2. Использование квадратных скобок [row, column]: аналогично матрицам.
    R
    # First student (first row)
    first_student <- students[1, ]

Фильтрация данных

Одной из сильных сторон R является возможность фильтровать записи на основе логических условий:

R
# Select only students with grade greater than 25
good_students <- students[students$grade > 25, ]
print(good_students)

Измерения и изменение фреймов данных

Чтобы найти размеры фрейма данных (количество строк и столбцов), мы можем использовать функцию dim():

R
# Returns a vector with two elements: c(rows, columns)
dimensions <- dim(students)

Мы также можем добавить новые столбцы или обновить существующие, используя оператор $ напрямую:

R
# Adds a column with grades increased by 2 points
students$bonus_grade <- students$grade + 2

Попробуйте сами

Упражнение#r.m2.l1.e1
Попыток: 0Загрузка…

Создайте фрейм данных с именем студентов, содержащий два столбца: имя (со значениями «Алиса» и «Боб») и оценка (со значениями 28 и 24).

Загрузка редактора…
Показать подсказку

Используйте функцию data.frame: студенты <- data.frame(name = c('Алиса', 'Боб'), оценка = c(28, 24))

Решение доступно после 3 попыток

Упражнение#r.m2.l1.e2
Попыток: 0Загрузка…

Учитывая учащихся Data Frame, извлеките столбец оценок с помощью оператора $ и сохраните его в переменной Grades_vector.

Загрузка редактора…
Показать подсказку

Оператор США $: Grades_vector <- Student$grade

Решение доступно после 3 попыток

Упражнение#r.m2.l1.e3
Попыток: 0Загрузка…

Отфильтруйте учащихся в Data Frame, чтобы включить только учащихся с оценкой выше или равной 26, сохраняя результат в файле Good_students.

Загрузка редактора…
Показать подсказку

Используйте студенты[студенты$оценка >= 26, ], не забывая запятую, чтобы выбрать все столбцы.

Решение доступно после 3 попыток

Упражнение#r.m2.l1.e4
Попыток: 0Загрузка…

Учитывая фрейм данных df, получите его размеры с помощью функции dim() и сохраните их в переменной df_dim.

Загрузка редактора…
Показать подсказку

Используйте функцию dim(): df_dim <- dim(df)

Решение доступно после 3 попыток

Упражнение#r.m2.l1.e5
Попыток: 0Загрузка…

Учитывая запасы фрейма данных, добавьте новый столбец с именем total_value, рассчитанный как произведение столбцов цены и количества.

Загрузка редактора…
Показать подсказку

Используйте: инвентарь$total_value <- инвентарь$цена * инвентарь$количество.

Решение доступно после 3 попыток