Menu
Coddy logo textTech

Операции с векторами

Часть раздела Основы путешествия по R на Coddy — урок 59 из 78.

Одной из самых мощных возможностей R является способность выполнять операции над целыми векторами одновременно, без необходимости перебора каждого элемента в цикле. Это делает ваш код более чистым и эффективным.

Когда вы применяете арифметический оператор к вектору, R выполняет операцию над каждым элементом:

prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)

Вывод:

[1]  9.0 22.5 13.5 27.0

Вы также можете выполнять операции между двумя векторами одинаковой длины. R сопоставляет соответствующие элементы:

quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)

Вывод:

[1] 20 25 60 90

R предоставляет полезные встроенные функции для распространенных вычислений с векторами, такие как sum(), mean(), min() и max():

scores <- c(85, 92, 78, 95, 88)
print(sum(scores))
print(mean(scores))
print(min(scores))
print(max(scores))

Вывод:

[1] 438
[1] 87.6
[1] 78
[1] 95
challenge icon

Задание

Легко

Вам предоставлены следующие векторы:

hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)

Выполните следующие операции и выведите каждый результат:

  1. Рассчитайте ежедневный заработок для каждого дня, умножив hours_worked на hourly_rate (поэлементно). Выведите этот вектор.
  2. Примените 10% бонус ко всем ежедневным заработкам (умножьте на 1.1). Выведите обновленный вектор заработка.
  3. Выведите общую сумму заработка за неделю, используя sum()
  4. Выведите средний ежедневный заработок, используя mean()
  5. Выведите самый высокий заработок за один день, используя max()
  6. Выведите самый низкий заработок за один день, используя min()

Ваш вывод должен быть следующим:

[1] 120 140 162 132 136
[1] 132.0 154.0 178.2 145.2 149.6
[1] 759
[1] 151.8
[1] 178.2
[1] 132

Шпаргалка

R выполняет операции над целыми векторами одновременно, без необходимости использования циклов.

Применение арифметического оператора к вектору выполняет операцию над каждым элементом:

prices <- c(10, 25, 15, 30)
discounted <- prices * 0.9
print(discounted)
# [1]  9.0 22.5 13.5 27.0

Операции между двумя векторами одинаковой длины объединяют соответствующие элементы в пары:

quantities <- c(2, 1, 4, 3)
prices <- c(10, 25, 15, 30)
totals <- quantities * prices
print(totals)
# [1] 20 25 60 90

Общие встроенные функции для вычислений с векторами:

scores <- c(85, 92, 78, 95, 88)
sum(scores)    # [1] 438
mean(scores)   # [1] 87.6
min(scores)    # [1] 78
max(scores)    # [1] 95

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

# Заданные векторы
hours_worked <- c(8, 7, 9, 6, 8)
hourly_rate <- c(15, 20, 18, 22, 17)

# TODO: Напишите ваш код ниже

# 1. Рассчитайте ежедневный заработок (поэлементное умножение)

# 2. Примените 10% бонус к ежедневному заработку

# 3. Выведите общую сумму заработка за неделю, используя sum()

# 4. Выведите средний ежедневный заработок, используя mean()

# 5. Выведите максимальный заработок за один день, используя max()

# 6. Выведите минимальный заработок за один день, используя min()
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы