R言語

【R言語】繰り返しの処理 for文・while文・repeat文

  1. HOME >
  2. R言語 >

【R言語】繰り返しの処理 for文・while文・repeat文

スポンサーリンク

R言語で繰り返しの処理を行う方法を解説します。

この記事ではfor文、while文、repeat文の使用例について見ていきます。

繰り返しの処理の具体例を交えて、R言語のfor文、while文、repeat文の記述の仕方や使う場面について説明していきます。

この記事で解説するプログラミングコードは以下からダウンロードできます。

if文については次の記事を参照してください。

繰り返しの処理

R言語にはfor文、while文、repeat文といった繰り返し処理のための文がサポートされています。

それぞれの文を構成する要素を以下にまとめました。

for文

for文は、以下のようにベクトルやリストなどのシークエンスの各要素について繰り返し処理を行います。

他の言語のforeachのような動きをします。

for(var in seq) expr
for文
var繰り返し処理を行う対象であるseqの各要素の変数名。
seqベクトルやリストなどのシークエンス。factorの値はcharacter型のベクトルに変換される。R 4.0.0かlong vectorもサポートされている。
expr{ expr1 ; expr2 }の形式の表現(expression)。

while文

while文はある条件の下で繰り返し処理を行います。

while(cond) expr
while文
condNAではない長さが1のロジカル型のベクトル(R 4.2.0から長さが1より大きいベクトルの場合エラーとなる)。ロジカル型に変換可能な型についても対応している。
expr{ expr1 ; expr2 }の形式の表現(expression)。

repeat文

repeat文はbreakなどのループから抜ける処理がない限り、繰り返し処理をし続けます。

repeat expr
repeat文
expr{ expr1 ; expr2 }の形式の表現(expression)。

実行例

繰り返しの処理の実行例について見ていきます。

for文、while文、repeat文のそれぞれの使い方をまとめました。

for文

まず、for文の実行例について紹介します。

R言語のfor文は次のように他の言語のforeach文に対応します。

ベクトルやリストの各要素に対して繰り返しの処理を行うようになっています。

他の言語の通常のfor文のようにインデックスを1つずつインクリメントしながら繰り返しの処理を行いたい場合は、次のようにseq_lenなどで数値の列(シークエンス)をfor文のin以降に指定します。

上を実行するとベクトルxの1から10までの要素に1から10の数値が代入されます。

数値のベクトルではなく文字列のベクトルに対してもfor文を適用することができます。

実行例は次の通りです。

同様に任意のベクトルやリストに対してfor文で繰り返しの処理を行うことができます。

また、breakを用いることで途中でforループを抜けることが可能です。

次の例では、ベクトルnumbersの要素の和を計算していますが、先頭からの和が10を超えたところで計算を止めるように制御しています。

実行結果は以下の通りです。

nextを用いることで処理をスキップし次のループに移ることができます。

次は1から10までの偶数の和を計算する例です。

奇数の際はnextで次のループに移るように制御しています。

実行すると1から10までの偶数の和が計算できていることが分かります。

while文

while文を用いることで、特定の条件が成り立つ限り処理を繰り返し続けることが可能です。

while文の書き方は次のように()の中に条件式を指定します。

この条件式が成り立つときwhileループが実行され続けます。

while文を用いるときは、終了するような条件がない場合無限ループとなってしまう点に注意する必要があります。

次の例は1から9までの連続する数の和を計算しています。

上を実行すると、1から9までの連続する数の和である45が計算できていることが分かります。

条件式だけでなくbreakでもループから抜けることが可能です。

次の例では、ベクトルxのインデックスがxの長さ以下のときに繰り返す処理を行っていますが、while文中のifでインデックスが5のときにbreakしwhileループから抜けるように制御しています。

実行するとxの5番目の要素までの"a"の数を計算しているのが確認できます。

repeat文

最後にrepeat文について見ていきます。

repeat文はwhile文の条件式にTRUEが与えられた場合と同じであり、デフォルトで無限ループを実行します。

braekでループから抜けるような処理を書く必要があります。

while文で行った処理をrepeat文で記述すると次のようになります。

if文とbreakで終了条件を指定します。

まとめ

R言語で繰り返しの処理を行う方法を紹介しました。

R言語では繰り返しの処理のためにfor文、while文、repeat文が用意されています。

Rのfor文は、他の言語のforeachのように記述します。ベクトルやリストの各要素についてforループを行うものとなっています。

また、repeat文はwhile文の条件式が常にTRUEであり、使用する際は無限ループにならないように注意が必要です。

スポンサーリンク

  • この記事を書いた人
  • 最新記事

usagi-san

統計学とゲームとかをメインに解説していくよ。 数式とかプログラミングコードにミスがあったり質問があったりする場合はコメントで受け付けます。すぐに対応します。

-R言語
-,