Введение в векторы в R: Пособие для начинающих
Здравствуйте, будущие программисты на R! Сегодня мы отправляемся в увлекательное путешествие в мир векторов в R. Не волнуйтесь, если вы никогда не программировали раньше - я буду вашим доброжелательным проводником, и мы будем двигаться шаг за шагом. К концу этого руководства вы будете создавать и манипулировать векторами, как профессионал!
Что такое вектор?
Прежде чем мы углубимся, давайте поймем, что такое вектор. В R вектор resembles a container that holds multiple items of the same type. Представьте его как поезд с несколькими вагонами, каждый из которых перевозит один и тот же вид груза. Этот груз может быть числами, текстом или даже логическими значениями (правда/ложь).
Создание векторов
Давайте начнем с изучения того, как создавать векторы. В R есть несколько способов сделать это, но мы сосредоточимся на самых.common и полезных методах.
Использование функции c()
Самый прямой способ создать вектор - использовать функцию c()
. Буква 'c' означает 'combined' или 'concatenate'.
# Создание числового вектора
numbers <- c(1, 2, 3, 4, 5)
print(numbers)
# Создание текстового вектора
fruits <- c("apple", "banana", "cherry")
print(fruits)
# Создание логического вектора
is_student <- c(TRUE, FALSE, TRUE, TRUE)
print(is_student)
В этих примерах мы создаем три разных типа векторов. Символ <-
используется для присвоения вектора имени переменной.
Использование оператора :
Для созданияsequence из чисел оператор :
очень удобен:
# Созданиеsequence от 1 до 10
sequence <- 1:10
print(sequence)
# Создание обратнойsequence
reverse_sequence <- 10:1
print(reverse_sequence)
Это быстрый способ создатьsequence целых чисел. Это как если бы вы говорили R: "Дай мне все числа от этого до того."
Использование функции seq()
Для болееcontrol над вашимиsequence, функция seq()
станет вашим другом:
# Созданиеsequence с определенным шагом
by_twos <- seq(from = 0, to = 10, by = 2)
print(by_twos)
# Созданиеsequence с определенной длиной
five_numbers <- seq(from = 0, to = 1, length.out = 5)
print(five_numbers)
Функция seq()
более гибка, позволяя вам указывать начальное значение, конечное значение, шаг или количество элементов, которые вы хотите.
Использование функции rep()
Иногда вам может понадобиться повторить значения. Вот где на помощь приходит функция rep()
:
# Повторение одного значения
repeat_five <- rep(5, times = 3)
print(repeat_five)
# Повторение вектора
repeat_vector <- rep(c(1, 2), times = 3)
print(repeat_vector)
# Повторение каждого элемента
repeat_each <- rep(c(1, 2), each = 3)
print(repeat_each)
rep()
отлично подходит для создания рисунков или для заполнения данных повторяющимися значениями.
Доступ к элементам вектора
Теперь, когда мы знаем, как создавать векторы, давайте научимся доступу к их элементам. В R мы используем квадратные скобки []
для этой цели.
Доступ по индексу
Помните, что в R индексирование начинается с 1, а не с 0, как в некоторых других языках программирования.
fruits <- c("apple", "banana", "cherry", "date")
# Доступ к первому элементу
print(fruits[1]) # Вывод: "apple"
# Доступ к третьему элементу
print(fruits[3]) # Вывод: "cherry"
# Доступ к нескольким элементам
print(fruits[c(1, 3)]) # Вывод: "apple" "cherry"
# Доступ к range элементов
print(fruits[2:4]) # Вывод: "banana" "cherry" "date"
Отрицательное индексирование
В R вы можете использовать отрицательные индексы, чтобы исключить элементы:
# Исключение второго элемента
print(fruits[-2]) # Вывод: "apple" "cherry" "date"
# Исключение нескольких элементов
print(fruits[c(-1, -3)]) # Вывод: "banana" "date"
Логическое индексирование
Вы также можете использовать логические векторы для доступа к элементам:
numbers <- c(1, 2, 3, 4, 5)
# Доступ к четным числам
print(numbers[numbers %% 2 == 0]) # Вывод: 2 4
# Доступ к числам больше 3
print(numbers[numbers > 3]) # Вывод: 4 5
Манипуляция векторами
Теперь, когда мы можем создавать и доступать векторы, давайте научимся манипулировать ими.
Векторная арифметика
Вы можете выполнять арифметические операции с векторами:
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)
# Сложение
print(vec1 + vec2) # Вывод: 5 7 9
# Умножение
print(vec1 * vec2) # Вывод: 4 10 18
# Деление
print(vec2 / vec1) # Вывод: 4 2.5 2
Векторное перерождение
Когда вы выполняете операции с векторами разной длины, R будет перерождать shorter вектор:
short_vec <- c(1, 2)
long_vec <- c(1, 2, 3, 4, 5, 6)
print(short_vec + long_vec) # Вывод: 2 4 4 6 6 8
R повторяет shorter вектор, чтобы соответствовать длине longer вектора.
Функции для работы с векторами
R предоставляет множество полезных функций для работы с векторами:
numbers <- c(5, 2, 8, 1, 9)
# Длина вектора
print(length(numbers)) # Вывод: 5
# Сумма всех элементов
print(sum(numbers)) # Вывод: 25
# Среднее (среднее) значение вектора
print(mean(numbers)) # Вывод: 5
# Сортировка вектора
print(sort(numbers)) # Вывод: 1 2 5 8 9
Вот таблица, резюмирующая некоторыеcommon функции для работы с векторами:
Функция | Описание |
---|---|
length() | Возвращает количество элементов в векторе |
sum() | Рассчитывает сумму всех элементов |
mean() | Рассчитывает среднее значение |
median() | Нахождение медианного значения |
max() | Возвращает максимальное значение |
min() | Возвращает минимальное значение |
sort() | Сортирует вектор в порядке возрастания |
rev() | Переворачивает порядок элементов |
Заключение
Поздравления! Вы только что сделали свои первые шаги в мир векторов в R. Мы рассмотрели создание, доступ к элементам и базовую манипуляцию. Помните, что практика делает perfect, поэтому не стесняйтесь экспериментировать с этими концепциями.
Векторы являются строительными блоками для работы с данными в R, и овладение ими подготовит вас к успеху в вашем пути программирования на R. Продолжайте исследовать, продолжайте программировать и, самое главное, наслаждайтесь процессом!
Credits: Image by storyset