Menu
Coddy logo textTech

ベクトルの演算

CoddyのRジャーニー「基礎」セクションの一部 — レッスン 59/78。

Rの最も強力な機能の1つは、各要素をループで処理することなく、ベクトル全体に対して一度に演算を実行できることです。これにより、コードがより簡潔で効率的になります。

ベクトルに算術演算子を適用すると、Rはすべての要素に対してその演算を実行します:

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

出力:

[1]  9.0 22.5 13.5 27.0

同じ長さの2つのベクトル間で演算を行うこともできます。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_workedhourly_rate を(要素ごとに)掛け合わせて、各日の日給を計算します。このベクトルを出力してください。
  2. すべての日給に10%のボーナスを適用します(1.1 を掛けます)。更新された給与ベクトルを出力してください。
  3. sum() を使用して、週の総収入を出力してください。
  4. mean() を使用して、1日の平均給与を出力してください。
  5. max() を使用して、1日の最高給与を出力してください。
  6. min() を使用して、1日の最低給与を出力してください。

出力は以下のようになるはずです:

[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

同じ長さの2つのベクトル間の演算は、対応する要素をペアにします:

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

自分で試してみよう

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

# TODO: 以下にコードを記述してください

# 1. 1日の賃金を計算する(要素ごとの乗算)

# 2. 1日の賃金に10%のボーナスを適用する

# 3. sum() を使用して週の総賃金を表示する

# 4. mean() を使用して1日の平均賃金を表示する

# 5. max() を使用して1日の最高賃金を表示する

# 6. min() を使用して1日の最低賃金を表示する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン