はじめに
ここでは、R初心者向けに「関数」の基本について解説していきます。
関数の作成
関数を作成するときは、function
を使います。
返り値はreturn
で書きます。
function_1.R
hello <- function(){
return ("Hello, R!")
}
average <- function(a, b){
return ((a + b) / length(c(a, b)))
}
関数の利用
関数を作成したら、実行したい箇所で関数名を呼び出します。
関数を作成しただけで実行されるわけではありません。
function_2.R
print(hello())
print(average(1, 3))
変数のスコープ
関数内で定義した変数(ローカル変数)は、関数外では同じオブジェクトとして使うことはできません。
関数外で定義した変数(グローバル変数)は、関数内で使うことはできますが、関数内での変更を反映させたい場合は、グローバル変数であることを関数の定義時に明示する必要があります。
function_3.R
addone <- function(n){
a <- 1
return (n + a)
}
print(addone(2))
print(a) # エラーになる。
function_4.R
a <- 1
addone <- function(n){
return (n + a)
}
print(addone(2))
print(a) # エラーにならない。
function_5.R
a <- 5
addone <- function(n){
a <- 1
return (n + a)
}
print(addone(2))
print(a)
function_6.R
a <- 5
addone <- function(n){
a <<- 1
return (n + a)
}
print(addone(2))
print(a)
function_7.R
a <- 5
addone <- function(n){
a <- 1
a <<- 7
return (n + a)
}
print(addone(2))
print(a)
まとめ
ここでは、Rにおける「関数」の基本について解説しました。
特に、変数のスコープについては注意が必要です。