メインコンテンツにスキップ
モジュール 2 · レッスン 2 / 2コース内の 4/10~12 min
モジュールのレッスン (2/2)

条件文とループ

R で複雑なアルゴリズムとプロシージャを実装するには、どの命令を実行し、それを何回繰り返すかを制御できる必要があります。

条件文

R では、基本的な条件構造は if と else に基づいています。構文は JavaScript や C などの言語に非常に似ています。

R
score <- 85

if (score >= 60) {
  print("Passed!")
} else {
  print("Failed.")
}

中括弧 {} は、括弧内のブール式の結果に応じて実行するコード ブロックを定義します。

for ループ

R の for ループは、シーケンス内の要素 (ベクトルやリストなど) を反復処理するために使用されます。

R
# Print numbers from 1 to 3
for (i in 1:3) {
  print(i)
}

R では、1:3 構文は、ベクトル c(1, 2, 3) を作成する簡単な方法です。

既存のベクトルの要素を直接ループすることもできます。

R
fruits <- c("apple", "banana", "cherry")

for (fruit in fruits) {
  print(fruit)
}

ifelse 関数

R の ifelse() 関数は、if-else ステートメントのベクトル化バージョンです。これにより、1 回の操作でベクトル全体に条件を適用し、結果のベクトルを返すことができます。

R
scores <- c(55, 80, 45, 90)
# Se score >= 60 assegna "Pass", altrimenti "Fail"
results <- ifelse(scores >= 60, "Pass", "Fail")
print(results) # "Fail" "Pass" "Fail" "Pass"

while ループ

while ループは、特定の条件が true (TRUE) である限り、コード ブロックを繰り返すために使用されます。無限ループを防ぐには、条件が最終的に false になるようにすることが重要です。

R
counter <- 1
while (counter <= 3) {
  print(counter)
  counter <- counter + 1
}

自分で試してみてください

運動#r.m2.l2.e1
試行回数: 0読み込み中…

変数スコアが 60 以上であるかどうかをチェックする if-else 条件ステートメントを作成します。60 である場合は、ステータスを「合格」に設定し、それ以外の場合は「失敗」に設定します。

エディターを読み込み中…
ヒントを表示

Verifica スコア >= 60 e assegna ステータス <- '合格' o ステータス <- '不合格'

3 回の試行後に解決策が利用可能になります

運動#r.m2.l2.e2
試行回数: 0読み込み中…

シーケンス 1:5 を反復し、print() 関数を使用して各値を出力する for ループを作成します。

エディターを読み込み中…
ヒントを表示

シンタッシを使用: for (i in 1:5) { print(i) }

3 回の試行後に解決策が利用可能になります

運動#r.m2.l2.e3
試行回数: 0読み込み中…

ベクトル v を指定して、各要素を反復し、print() を使用してその double (val * 2) を出力する for ループを作成します。

エディターを読み込み中…
ヒントを表示

v の要素をループします: for (val in v) { print(val * 2) }

3 回の試行後に解決策が利用可能になります

運動#r.m2.l2.e4
試行回数: 0読み込み中…

ベクトル スコアが与えられた場合、ifelse() 関数を使用して、どの要素が 60 以上であるかを確認します。結果 (各要素の「合格」または「失敗」が含まれる) を結果変数に保存します。

エディターを読み込み中…
ヒントを表示

関数を使用します: results <- ifelse(scores >= 60, 'Pass', 'Fail')

3 回の試行後に解決策が利用可能になります

運動#r.m2.l2.e5
試行回数: 0読み込み中…

while ループを使用して、x の値を 50 を超えるまで 2 倍にします。また、反復ごとにカウンター変数をインクリメントします。

エディターを読み込み中…
ヒントを表示

while ループ (x <= 50) を使用して、中括弧内の x と counter の両方を更新します。

3 回の試行後に解決策が利用可能になります