jnobuyukiのブログ

JavaScriptとR言語を中心に研究活動に役立つwebアプリケーション技術について考えていきます。twitter ID: @j_nobuyuki

R言語での計算の繰り返しのバリエーション

R言語は,統計解析に用いられるプログラミング言語です。プログラミング言語なので,他のプログラミング言語にあるような繰り返し計算や条件分岐などを行えます。今回は,R言語における繰り返し計算の方法をまとめます。

for関数による繰り返し

for関数では,繰り返しの回数を()の中で指定し,{}の計算を繰り返し行います。()内は 添字をその範囲を次のように指定します。

for (添字 in 開始番号:終了番号)

例えば1から10までの数をすべて足し合わせるなら(通常はsum関数を使えば良いです)次のように繰り返し計算で求められます。

res <- 0 #結果を示すためのオブジェクト
for (i in 1:10){
    res <- res + i #累積した和にi番目の数を加える
}
print(res)

while関数による繰り返し

while関数では()内に計算の繰り返しを終了する条件を記入します。この条件が満たされるまで{}内の計算が繰り返されます。先程の1から10までの数をすべて足し合わせる計算をwhile関数では次のようにかけます。

res <- 0 #結果を示すためのオブジェクト
x <- 1 #条件判定の基準となるオブジェクト

while (x <= 10) {
    res <- res + x
    x <- x + 1
}
print(res)

repeatによる繰り返し

repeatを用いる方法もあります。repeatには()がつかないので,関数と呼んでいいのかわからないのですが,とにかく条件を満たすまで計算を繰り返します。繰り返し終了の条件判定も{}内で行う点がwhile関数と異なります。

res <- 0 #結果を表示するためのオブジェクト
x <- 1 #条件判定の基準となるオブジェクト
repeat{
 res <- res + x
   x <- x + 1
   if (x > 10) break
}
print(res)

今回repeatによる方法を初めて知ったのですが,これを使うといろいろな条件で繰り返し計算を終了できるので便利ですね。