Menu
Coddy logo textTech

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

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

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

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

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

Задание

Легко

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

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

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

  1. Calculate daily earnings для каждого day, умножив hours_worked на hourly_rate (поэлементно). Выведите этот vector.
  2. Apply бонус в размере 10% ко всем daily earnings (умножьте на 1.1). Выведите обновлённый vector earnings.
  3. Выведите total earnings за week, используя sum()
  4. Выведите average daily earnings, используя mean()
  5. Выведите highest single-day earnings, используя max()
  6. Выведите lowest single-day earnings, используя min()

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

[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

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

# Даны векторы
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Проверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор R