1. 学ぶ
  2. /
  3. コース
  4. /
  5. 中級 R

Connected

演習

R は引数を値渡しで渡す

タイトルからもわかるとおり、R は引数を値渡し(pass by value)で渡します。これはどういう意味でしょうか。簡単に言うと、R の関数に渡した変数は、関数の中で変更されないということです。次の例を見てみましょう(コンソールで実際に試してみてください)。

triple <- function(x) {
  x <- 3*x
  x
}
a <- 5
triple(a)
a

triple() 関数の内部では、引数 x がその値の 3 倍で上書きされ、新しい x が返されます。変数 a に 5 を代入してこの関数を呼び出すと、15 が返されます。では、a の値は変わったでしょうか?もし R が a を参照渡し(by reference)で渡していたなら、関数内部での triple() の上書きが関数の外側にある変数 x にも反映されます。しかし R は値渡し(by value)を採用しているため、関数に渡した R オブジェクトは明示的な代入を行わない限り変更されません。a を呼び出した後も、a は 5 のままです。

次のコードについて、triple(a)誤っているステートメントはどれでしょうか?

指示

50 XP

選択肢