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)誤っているステートメントはどれでしょうか?
この演習はコースの一部です
