この記事では、R言語の初心者向けに制御構文と関数作成の基本についてコード例を交えながら紹介していきます。
制御構文について
制御構文は、プログラムの流れを制御するための構文です。条件に応じて処理を分岐させたり、繰り返し処理を行うことができます。
関数作成
関数は、特定の処理をまとめて再利用可能にしたものです。自分で関数を作成することで、コードの可読性や保守性が向上します。
制御構文
if構文
if
if
構文は、条件が真の場合にのみ処理を実行します。例えば、「もし雨が降ったら傘を持っていく」といった状況を表現します。
次のスクリプトでは変数weatherがrainyの時、「傘を持っていく」と表示されます。変数weatherがrainy以外の時は何も表示されません。
weather <- "rainy"
if (weather == "rainy") {
print("傘を持っていく")
}
if-else
if-else
構文は、条件が真の場合と偽の場合で異なる処理を実行します。
次のスクリプトの条件式は、weatherがrainyの時「傘を持っていく」と表示しますが、rainy以外の時は「傘は必要ない」と表示されるようになっています。
次のスクリプトでは、変数weatherにsunnyが格納されているので、「傘は必要ない」と表示されます。
weather <- "sunny"
if (weather == "rainy") {
print("傘を持っていく")
} else {
print("傘は必要ない")
}
if-else if-else
複数の条件をチェックする場合は、else if
を使います。
次のスクリプトの条件式は、weatherがrainyの時「傘を持っていく」と表示し、rainyではなくcloudyの時は「天気は曇り」と表示します。それ以外の場合は「良い天気」と表示されます。
このように、if-else構文は複数組み合わせることができます。
次のスクリプトでは、変数weatherにcloudyが格納されているので、「天気は曇り」が表示されます。
weather <- "cloudy"
if (weather == "rainy") {
print("傘を持っていく")
} else if (weather == "cloudy") {
print("天気は曇り")
} else {
print("良い天気")
}
for構文
for
ループは、変数「i」が集合(今回のスクリプトでは1〜5)の値を取りながら、繰り返し処理を行います。
次のスクリプトでは1〜5の数字が順番に表示されます。
for (i in 1:5) {
print(i)
}
while構文
while
ループは、条件が真である限り処理を繰り返します。
次のスクリプトでは、変数countが5以下になるまで繰り返し計算を行うので、1〜5の数字が順番に表示されると繰り返し計算が終了し、次のスクリプトに移行します。
(論理式が永久に真の場合は、計算が終了しないので注意してください。)
count <- 1
while (count <= 5) {
print(count)
count <- count + 1
}
next
next
は、現在のループの反復をスキップし、次の反復に進みます。
次のスクリプトでは、変数iが3の時の計算がスキップされるので、1・2・4・5の数字が表示されます。
for (i in 1:5) {
if (i == 3) {
next
}
print(i)
}
break
break
は、ループを終了させます。
次のスクリプトでは、変数iが3の時の計算が終了するので、1と2の数字が表示されます。
for (i in 1:5) {
if (i == 3) {
break
}
print(i)
}
repeat
repeat
ループは、明示的にbreak
を使って終了させるまで無限に繰り返し処理を行います。
次のスクリプトで変数countに1足した数を順に表示しますが、if構文によって変数countが5より大きくなった時に計算が終了するようになっています。
実行すると、1〜5の数字が順に表示されます。
count <- 1
repeat {
print(count)
count <- count + 1
if (count > 5) {
break
}
}
関数作成
関数を作成することで、繰り返し使用する処理を簡単に再利用できます。例えば、二つの数の和を計算する関数を作成してみましょう。
add_numbers <- function(a, b) {
return(a + b)
}
result <- add_numbers(3, 5)
print(result)
おわりに
Rの制御構文と関数作成の基本について紹介しました。
これらの構文や関数作成は統計処理プログラムの作成で重宝します。
この記事が少しでもお役に立てたら嬉しいです。